2013-11-06 10:55:39 +08:00
|
|
|
macro(pre_build TARGET_NAME)
|
|
|
|
add_custom_target( ${TARGET_NAME}_PRE_BUILD ALL )
|
2013-11-04 18:48:36 +08:00
|
|
|
|
2013-11-06 10:55:39 +08:00
|
|
|
add_custom_command(
|
|
|
|
TARGET ${TARGET_NAME}_PRE_BUILD
|
|
|
|
${ARGN}
|
|
|
|
PRE_BUILD
|
|
|
|
COMMENT "${TARGET_NAME}_PRE_BUILD ..."
|
|
|
|
)
|
2013-11-02 16:31:52 +08:00
|
|
|
|
2013-11-06 10:55:39 +08:00
|
|
|
add_custom_target( ${TARGET_NAME}_CORE_PRE_BUILD )
|
|
|
|
add_dependencies( ${TARGET_NAME}_PRE_BUILD ${TARGET_NAME}_CORE_PRE_BUILD )
|
2013-11-04 18:48:36 +08:00
|
|
|
endmacro()
|
2014-08-06 22:43:19 +08:00
|
|
|
|
|
|
|
#cmake has some strange defaults, this should help us a lot
|
|
|
|
#Please use them everywhere
|
|
|
|
|
|
|
|
#WINDOWS = Windows Desktop
|
|
|
|
#WINRT = Windows RT
|
|
|
|
#WP8 = Windows Phone 8
|
|
|
|
#ANDROID = ANDROID
|
|
|
|
#IOS = IOS
|
|
|
|
#MACOSX = MAC OSX
|
|
|
|
|
|
|
|
if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
|
|
|
if(WINRT)
|
|
|
|
set(SYSTEM_STRING "Windows RT")
|
|
|
|
elseif(WP8)
|
|
|
|
set(SYSTEM_STRING "Windows Phone 8")
|
|
|
|
else()
|
|
|
|
set(WINDOWS TRUE)
|
|
|
|
set(SYSTEM_STRING "Windows Desktop")
|
|
|
|
endif()
|
|
|
|
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
|
|
|
if(ANDROID)
|
|
|
|
set(SYSTEM_STRING "Android")
|
|
|
|
else()
|
|
|
|
set(LINUX TRUE)
|
|
|
|
set(SYSTEM_STRING "Linux")
|
|
|
|
endif()
|
|
|
|
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
|
|
|
if(IOS)
|
|
|
|
set(SYSTEM_STRING "IOS")
|
|
|
|
else()
|
|
|
|
set(MACOSX TRUE)
|
|
|
|
set(SYSTEM_STRING "Mac OSX")
|
|
|
|
endif()
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
|
|
|
set(COMPILER_STRING ${CMAKE_CXX_COMPILER_ID})
|
|
|
|
set(CLANG TRUE)
|
|
|
|
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
|
|
|
if(MINGW)
|
|
|
|
set(COMPILER_STRING "Mingw GCC")
|
|
|
|
else()
|
|
|
|
set(COMPILER_STRING "GCC")
|
|
|
|
endif()
|
|
|
|
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel")
|
|
|
|
set(COMPILER_STRING "${CMAKE_CXX_COMPILER_ID} C++")
|
|
|
|
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
|
|
|
|
set(COMPILER_STRING "Visual Studio C++")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if(CMAKE_CROSSCOMPILING)
|
|
|
|
set(BUILDING_STRING "It appears you are cross compiling for ${SYSTEM_STRING} with ${COMPILER_STRING}")
|
|
|
|
else()
|
|
|
|
set(BUILDING_STRING "It appears you are builing natively for ${SYSTEM_STRING} with ${COMPILER_STRING}")
|
|
|
|
endif()
|