diff --git a/CMakeLists.txt b/CMakeLists.txt index ccef777..b58ee9c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,13 +2,7 @@ project(CMCore) -set(CMCORE_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR}) -set(CMCORE_ROOT_INCLUDE_PATH ${CMCORE_ROOT_PATH}/inc) -set(CMCORE_ROOT_SOURCE_PATH ${CMCORE_ROOT_PATH}/src) +include(path_config.cmake) +CMCoreSetup(${CMAKE_CURRENT_SOURCE_DIR}) -set(CMAKE_MODULE_PATH ${CMCORE_ROOT_PATH}/cmake) - -include(CMCoreCheck) - -include_directories(${CMCORE_ROOT_INCLUDE_PATH}) -add_subdirectory(${CMCORE_ROOT_SOURCE_PATH}) +add_subdirectory(${CMCORE_ROOT_SOURCE_PATH}) \ No newline at end of file diff --git a/cmake/CMCoreCheck.cmake b/cmake/CMCoreCheck.cmake deleted file mode 100644 index f098c2c..0000000 --- a/cmake/CMCoreCheck.cmake +++ /dev/null @@ -1,11 +0,0 @@ -set_property(GLOBAL PROPERTY USE_FOLDERS ON) - -include(system_bit) -include(version) -include(compiler) -include(output_path) - -check_system_bits() -check_system_version() -set_compiler_param() -set_output_directory() diff --git a/cmake/compiler.cmake b/cmake/compiler.cmake deleted file mode 100644 index d7f5bca..0000000 --- a/cmake/compiler.cmake +++ /dev/null @@ -1,47 +0,0 @@ -macro(set_compiler_param) - - IF(WIN32) - - SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /MDd") - SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MDd") - - SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /MD") - SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MD") - - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++14") - - add_compile_options(/arch:AVX2) - add_definitions(-D_CRT_SECURE_NO_WARNINGS) - - ELSE() - IF(NOT ANDROID) - IF(APPLE) - SET(USE_CLANG ON) - ELSE() - OPTION(USE_CLANG OFF) - ENDIF() - - if(USE_CLANG) - SET(CMAKE_C_COMPILER clang) - SET(CMAKE_CXX_COMPILER clang++) - endif() - ENDIF() - - add_compile_options(-mavx) - - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11") - - SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -ggdb3") - SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -ggdb3") - - SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Ofast") - SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Ofast") - ENDIF() - - MESSAGE("C Compiler: " ${CMAKE_C_COMPILER}) - MESSAGE("C++ Compiler: " ${CMAKE_CXX_COMPILER}) - MESSAGE("C Flag: " ${CMAKE_C_FLAGS}) - MESSAGE("C++ Flag: " ${CMAKE_CXX_FLAGS}) - -endmacro() diff --git a/cmake/output_path.cmake b/cmake/output_path.cmake deleted file mode 100644 index b435b2f..0000000 --- a/cmake/output_path.cmake +++ /dev/null @@ -1,33 +0,0 @@ -macro(set_output_directory) - - IF(ANDROID) - SET(OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/out/android/${ANDROID_ABI}) - ELSEIF(IOS) - SET(OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/out/iOS/${IOS_PLATFORM}) - ELSE() - IF(WIN32) - SET(USE_GUI ON) - ENDIF() - - SET(OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/out/${CMAKE_SYSTEM_NAME}_${HGL_BITS}) - ENDIF() - - MESSAGE("SYSTEM NAME: " ${CMAKE_SYSTEM_NAME}) - MESSAGE("OUTPUT DIRECTORY: " ${OUTPUT_DIRECTORY}) - - SET(OUTPUT_DIRECTORY_DEBUG ${OUTPUT_DIRECTORY}_Debug) - SET(OUTPUT_DIRECTORY_RELEASE ${OUTPUT_DIRECTORY}_Release) - - SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${OUTPUT_DIRECTORY}) - SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${OUTPUT_DIRECTORY}) - SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${OUTPUT_DIRECTORY}) - - SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${OUTPUT_DIRECTORY_DEBUG}) - SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${OUTPUT_DIRECTORY_DEBUG}) - SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${OUTPUT_DIRECTORY_DEBUG}) - - SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${OUTPUT_DIRECTORY_RELEASE}) - SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${OUTPUT_DIRECTORY_RELEASE}) - SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${OUTPUT_DIRECTORY_RELEASE}) - -endmacro() diff --git a/cmake/system_bit.cmake b/cmake/system_bit.cmake deleted file mode 100644 index cf0d8b3..0000000 --- a/cmake/system_bit.cmake +++ /dev/null @@ -1,31 +0,0 @@ -macro(check_system_bits) - - IF(APPLE) - SET(HGL_BITS 64) - ELSE() - IF(ANDROID) - if(ANDROID_ABI MATCHES ".*64.*") - SET(HGL_BITS 64) - else() - SET(HGL_BITS 32) - endif() - ELSE() - IF(CMAKE_SIZEOF_VOID_P EQUAL 8) - SET(HGL_BITS 64) - ELSE() - SET(HGL_BITS 32) - ENDIF() - endif() - endif() - - IF(HGL_BITS EQUAL 32) - add_definitions(-DHGL_32_BITS) - add_definitions(-DHGL_POINTER_UINT=uint32) - ELSE() - add_definitions(-DHGL_64_BITS) - add_definitions(-DHGL_POINTER_UINT=uint64) - ENDIF() - - Message("System is ${HGL_BITS} Bit") - -endmacro() diff --git a/cmake/version.cmake b/cmake/version.cmake deleted file mode 100644 index 090f70d..0000000 --- a/cmake/version.cmake +++ /dev/null @@ -1,25 +0,0 @@ -macro(check_system_version) - - message("Host system: " ${CMAKE_HOST_SYSTEM}) - message("Host system name: " ${CMAKE_HOST_SYSTEM_NAME}) - message("Host system version: " ${CMAKE_HOST_SYSTEM_VERSION}) - - message("Compile features: " ${CMAKE_CXX_COMPILE_FEATURES}) - message("Compile Flags: " ${CMAKE_C_FLAGS}) - message("C++ Compile Flags: " ${CMAKE_CXX_FLAGS}) - message("Build type: " ${CMAKE_BUILD_TYPE}) - - add_definitions(-DHGL_HOST_SYSTEM="${CMAKE_HOST_SYSTEM}") - - add_definitions(-DHGL_COMPILE_C_FLAGS="${CMAKE_C_FLAGS}") - add_definitions(-DHGL_COMPILE_CXX_FLAGS="${CMAKE_CXX_FLAGS}") - - add_definitions(-DCMAKE_VERSION="${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}") - - MESSAGE("C Compile Features: " ${CMAKE_C_COMPILE_FEATURES}) - MESSAGE("C++ Compile Features: " ${CMAKE_CXX_COMPILE_FEATURES}) - - # add_definitions(-DHGL_COMPILE_C_FEATURES="${CMAKE_C_COMPILE_FEATURES}") - # add_definitions(-DHGL_COMPILE_CXX_FEATURES="${CMAKE_CXX_COMPILE_FEATURES}") - -endmacro() diff --git a/path_config.cmake b/path_config.cmake new file mode 100644 index 0000000..5b449ac --- /dev/null +++ b/path_config.cmake @@ -0,0 +1,16 @@ +macro(CMCoreSetup CMCORE_ROOT_PATH) + + message("CMROOT_ROOT_PATH: " ${CMCORE_ROOT_PATH}) + + set(CMCORE_ROOT_INCLUDE_PATH ${CMCORE_ROOT_PATH}/inc) + set(CMCORE_ROOT_SOURCE_PATH ${CMCORE_ROOT_PATH}/src) + + #set(CMAKE_MODULE_PATH ${CMCORE_ROOT_PATH}/cmake) + #使用CMAKE_MODULE_PATH会引起在多重工程引用时出现一定问题,所以这里直接指定 + include(${CMCORE_ROOT_PATH}/cmake/system_bit.cmake) + include(${CMCORE_ROOT_PATH}/cmake/version.cmake) + include(${CMCORE_ROOT_PATH}/cmake/compiler.cmake) + include(${CMCORE_ROOT_PATH}/cmake/output_path.cmake) + + include_directories(${CMCORE_ROOT_INCLUDE_PATH}) +endmacro() \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 994a9c8..0bbbec8 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -52,9 +52,8 @@ SET(BASE_PLUG_IN_SOURCE SOURCE_GROUP("PlugIn" FILES ${BASE_PLUG_IN_SOURCE}) -add_library(CMCore STATIC #${SYSTEM_INFO_SOURCE} +add_library(CMCore STATIC #${SYSTEM_INFO_SOURCE} ${TYPE_TEMPLATE_HEADER} - ${TYPE_TEMPLATE_SOURCE} ${BASE_TYPE_SOURCE} ${BASE_IO_SOURCE} ${BASE_FILE_SYSTEM_SOURCE}