增加cmake模块

This commit is contained in:
hyzboy 2018-11-26 15:58:50 +08:00
parent f2a6d12e0a
commit ef2f2ca532
4 changed files with 127 additions and 0 deletions

42
cmake/compiler.cmake Normal file
View File

@ -0,0 +1,42 @@
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")
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()
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()

29
cmake/output_path.cmake Normal file
View File

@ -0,0 +1,29 @@
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_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()

31
cmake/system_bit.cmake Normal file
View File

@ -0,0 +1,31 @@
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()

25
cmake/version.cmake Normal file
View File

@ -0,0 +1,25 @@
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()