mirror of https://github.com/axmolengine/axmol.git
96 lines
2.7 KiB
CMake
96 lines
2.7 KiB
CMake
|
include(CMakeParseArguments)
|
||
|
|
||
|
macro(pre_build TARGET_NAME)
|
||
|
add_custom_target( ${TARGET_NAME}_PRE_BUILD ALL )
|
||
|
|
||
|
add_custom_command(
|
||
|
TARGET ${TARGET_NAME}_PRE_BUILD
|
||
|
${ARGN}
|
||
|
PRE_BUILD
|
||
|
COMMENT "${TARGET_NAME}_PRE_BUILD ..."
|
||
|
)
|
||
|
|
||
|
add_custom_target(${TARGET_NAME}_CORE_PRE_BUILD)
|
||
|
add_dependencies(${TARGET_NAME}_PRE_BUILD ${TARGET_NAME}_CORE_PRE_BUILD)
|
||
|
add_dependencies(${TARGET_NAME} ${TARGET_NAME}_PRE_BUILD)
|
||
|
endmacro()
|
||
|
|
||
|
function(cocos_mark_resources)
|
||
|
set(oneValueArgs BASEDIR RESOURCEBASE)
|
||
|
set(multiValueArgs FILES)
|
||
|
cmake_parse_arguments(opt "" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||
|
|
||
|
if(NOT opt_RESOURCEBASE)
|
||
|
set(opt_RESOURCEBASE Resources)
|
||
|
endif()
|
||
|
|
||
|
get_filename_component(BASEDIR_ABS ${opt_BASEDIR} ABSOLUTE)
|
||
|
foreach(RES_FILE ${opt_FILES} ${opt_UNPARSED_ARGUMENTS})
|
||
|
get_filename_component(RES_FILE_ABS ${RES_FILE} ABSOLUTE)
|
||
|
file(RELATIVE_PATH RES ${BASEDIR_ABS} ${RES_FILE_ABS})
|
||
|
get_filename_component(RES_LOC ${RES} PATH)
|
||
|
set_source_files_properties(${RES_FILE} PROPERTIES
|
||
|
MACOSX_PACKAGE_LOCATION "${opt_RESOURCEBASE}/${RES_LOC}"
|
||
|
HEADER_FILE_ONLY 1
|
||
|
)
|
||
|
endforeach()
|
||
|
endfunction()
|
||
|
|
||
|
#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 = MacOS X
|
||
|
#LINUX = Linux
|
||
|
|
||
|
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(APPLE 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()
|