2019-11-23 20:27:39 +08:00
|
|
|
# print cmake debug info
|
|
|
|
set(CMAKE_DEBUG_TARGET_PROPERTIES
|
|
|
|
# INCLUDE_DIRECTORIES
|
|
|
|
# COMPILE_DEFINITIONS
|
|
|
|
# COMPILE_OPTIONS
|
|
|
|
# AUTOUIC_OPTIONS
|
|
|
|
# POSITION_INDEPENDENT_CODE
|
|
|
|
)
|
|
|
|
|
2023-07-08 17:13:30 +08:00
|
|
|
# The ``OLD`` behavior for this policy is to set ``OpenGL_GL_PREFERENCE`` to
|
|
|
|
# ``LEGACY``. The ``NEW`` behavior for this policy is to set
|
|
|
|
# ``OpenGL_GL_PREFERENCE`` to ``GLVND``.
|
|
|
|
# need review those libs: X11 Xi Xrandr Xxf86vm Xinerama Xcursor rt m
|
|
|
|
cmake_policy(SET CMP0072 NEW)
|
|
|
|
|
2022-10-01 16:24:52 +08:00
|
|
|
# some useful variables for every one ax project
|
2019-11-23 20:27:39 +08:00
|
|
|
set(ENGINE_BINARY_PATH ${PROJECT_BINARY_DIR}/engine)
|
|
|
|
|
|
|
|
if(CMAKE_TOOLCHAIN_FILE)
|
|
|
|
message(STATUS "using toolchain file:" ${CMAKE_TOOLCHAIN_FILE})
|
|
|
|
endif()
|
|
|
|
|
2020-08-05 18:31:24 +08:00
|
|
|
find_program(PYTHON_COMMAND NAMES python3 python2 python)
|
2022-10-18 19:13:40 +08:00
|
|
|
find_program(_AX_COMMAND NAME axmol
|
2023-07-06 16:09:54 +08:00
|
|
|
PATHS ${_AX_ROOT}/tools/console/bin $ENV{AX_CONSOLE_ROOT})
|
2019-11-23 20:27:39 +08:00
|
|
|
|
|
|
|
# the default behavior of build module
|
2022-12-17 16:35:20 +08:00
|
|
|
option(AX_ENABLE_EXT_LUA "Build lua libraries" ON)
|
2019-11-23 20:27:39 +08:00
|
|
|
|
2020-08-03 20:31:47 +08:00
|
|
|
# hold the extensions list to auto link to app
|
2022-05-13 21:06:17 +08:00
|
|
|
set(_AX_EXTENSION_LIBS "" CACHE INTERNAL "extensions for auto link to target application")
|
2020-08-03 20:31:47 +08:00
|
|
|
|
2023-08-09 14:37:43 +08:00
|
|
|
# configure android GLSLCC compile output, this is the first include cmake module
|
|
|
|
if (ANDROID)
|
|
|
|
file(TO_NATIVE_PATH "${PROJECT_SOURCE_DIR}/proj.android/build/runtime/axslc" _GLSLCC_OUT_DIR)
|
|
|
|
set(GLSLCC_OUT_DIR "${_GLSLCC_OUT_DIR}" CACHE STRING "" FORCE)
|
|
|
|
message(AUTHOR_WARNING "Set GLSLCC_OUT_DIR to ${GLSLCC_OUT_DIR} for android")
|
|
|
|
endif()
|
|
|
|
|
2019-11-23 20:27:39 +08:00
|
|
|
# include helper functions
|
2022-08-08 18:02:17 +08:00
|
|
|
include(AXBuildHelpers)
|
2019-11-23 20:27:39 +08:00
|
|
|
|
|
|
|
# set common compiler options
|
|
|
|
# add target compile define function
|
|
|
|
# add target compile options function
|
2022-08-08 18:02:17 +08:00
|
|
|
include(AXConfigDefine)
|
2019-11-23 20:27:39 +08:00
|
|
|
|
|
|
|
# config libraries dependence
|
2022-08-08 18:02:17 +08:00
|
|
|
include(AXConfigDepend)
|
2019-11-23 20:27:39 +08:00
|
|
|
|
2023-06-13 20:30:57 +08:00
|
|
|
message(STATUS "CMAKE_HOST_SYSTEM_NAME:" ${CMAKE_HOST_SYSTEM_NAME})
|
|
|
|
message(STATUS "CMAKE_SYSTEM_NAME:" ${CMAKE_SYSTEM_NAME})
|
|
|
|
message(STATUS "CMAKE_GENERATOR_PLATFORM:" ${CMAKE_GENERATOR_PLATFORM})
|
|
|
|
message(STATUS "CMAKE_SYSTEM_PROCESSOR:" ${CMAKE_SYSTEM_PROCESSOR})
|
|
|
|
message(STATUS "CMAKE_CXX_COMPILER_ID:" ${CMAKE_CXX_COMPILER_ID})
|
|
|
|
message(STATUS "FUZZ_MSVC=${FUZZ_MSVC}, FULL_CLANG=${FULL_CLANG}")
|
|
|
|
|
2023-03-11 22:10:18 +08:00
|
|
|
message(STATUS "PROJECT_NAME:" ${PROJECT_NAME})
|
|
|
|
message(STATUS "PROJECT_SOURCE_DIR:" ${PROJECT_SOURCE_DIR})
|
2023-07-06 16:09:54 +08:00
|
|
|
message(STATUS "_AX_ROOT:" ${_AX_ROOT})
|
2023-03-11 22:10:18 +08:00
|
|
|
message(STATUS "CMAKE_MODULE_PATH:" ${CMAKE_MODULE_PATH})
|
|
|
|
# delete binary dir if you hope a full clean re-build
|
|
|
|
message(STATUS "PROJECT_BINARY_DIR:" ${PROJECT_BINARY_DIR})
|
|
|
|
message(STATUS "ENGINE_BINARY_PATH:" ${ENGINE_BINARY_PATH})
|
|
|
|
message(STATUS "PYTHON_PATH:" ${PYTHON_COMMAND})
|
|
|
|
message(STATUS "_AX_COMMAND_PATH:" ${_AX_COMMAND})
|
|
|
|
message(STATUS "ARCH_ALIAS:" ${ARCH_ALIAS})
|
|
|
|
|
2022-08-11 15:41:10 +08:00
|
|
|
if(_AX_COMMAND)
|
|
|
|
get_filename_component(ax_console_dir ${_AX_COMMAND} DIRECTORY)
|
|
|
|
set(_AX_LUAJIT_ROOT ${ax_console_dir}/../plugins/plugin_luacompile/bin)
|
2022-08-08 18:02:17 +08:00
|
|
|
message(STATUS "_AX_LUAJIT_ROOT:" ${_AX_LUAJIT_ROOT})
|
2019-11-23 20:27:39 +08:00
|
|
|
if("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Windows")
|
2022-08-08 18:02:17 +08:00
|
|
|
find_program(LUAJIT32_COMMAND NAMES luajit-win32 PATHS ${_AX_LUAJIT_ROOT}/32bit NO_SYSTEM_ENVIRONMENT_PATH)
|
|
|
|
find_program(LUAJIT64_COMMAND NAMES luajit-win32 PATHS ${_AX_LUAJIT_ROOT}/64bit NO_SYSTEM_ENVIRONMENT_PATH)
|
2019-11-23 20:27:39 +08:00
|
|
|
elseif("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Linux")
|
2022-08-08 18:02:17 +08:00
|
|
|
find_program(LUAJIT32_COMMAND NAMES luajit-linux PATHS ${_AX_LUAJIT_ROOT}/32bit NO_SYSTEM_ENVIRONMENT_PATH)
|
|
|
|
find_program(LUAJIT64_COMMAND NAMES luajit-linux PATHS ${_AX_LUAJIT_ROOT}/64bit NO_SYSTEM_ENVIRONMENT_PATH)
|
2019-11-23 20:27:39 +08:00
|
|
|
endif()
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
|
|
if(WINDOWS OR LINUX)
|
|
|
|
message(STATUS "LUAJIT32_COMMAND:" ${LUAJIT32_COMMAND})
|
|
|
|
message(STATUS "LUAJIT64_COMMAND:" ${LUAJIT64_COMMAND})
|
|
|
|
endif()
|