mirror of https://github.com/axmolengine/axmol.git
125 lines
3.6 KiB
CMake
125 lines
3.6 KiB
CMake
|
|
# default value for cocos2dx extensions modules to Build
|
|
# currently 7 extensions
|
|
# extensions dependicies: COCOSTUDIO may depend on spine & dragonBones if they are present in buildset
|
|
|
|
option(BUILD_EXTENSION_GUI "Build extension GUI" ON)
|
|
|
|
option(BUILD_EXTENSION_ASSETMANAGER "Build extension asset-manager" ON)
|
|
option(BUILD_EXTENSION_PARTICLE3D "Build extension Particle3D" ON)
|
|
option(BUILD_EXTENSION_PHYSICS_NODE "Build extension physics-nodes" ON)
|
|
|
|
option(BUILD_EXTENSION_SPINE "Build extension spine" ON)
|
|
option(BUILD_EXTENSION_DRAGONBONES "Build extension DragonBones" ON)
|
|
|
|
option(BUILD_EXTENSION_COCOSTUDIO "Build extension cocostudio" ON)
|
|
|
|
option(BUILD_EXTENSION_FAIRYGUI "Build extension FairyGUI" ON)
|
|
|
|
if(WINDOWS OR MACOSX OR LINUX)
|
|
option(BUILD_EXTENSION_IMGUIEXT "Build extension ImGuiEXT" ON)
|
|
else()
|
|
set(BUILD_EXTENSION_IMGUIEXT OFF)
|
|
endif()
|
|
|
|
if(BUILD_SHARED_LIBS)
|
|
cmake_policy(SET CMP0079 NEW)
|
|
endif()
|
|
|
|
function(setup_cocos_extension_config target_name)
|
|
set(options DNTLINK opt_DNTLINK)
|
|
cmake_parse_arguments(opt "" "${options}" ""
|
|
"" ${ARGN} )
|
|
|
|
if(ANDROID)
|
|
target_link_libraries(${target_name} INTERFACE ${ENGINEX_CORE_LIB})
|
|
target_include_directories(${target_name} PRIVATE $<TARGET_PROPERTY:${ENGINEX_CORE_LIB},INTERFACE_INCLUDE_DIRECTORIES>)
|
|
# target_compile_definitions(${target_name} PRIVATE CP_USE_CGTYPES=0)
|
|
# target_compile_definitions(${target_name} PRIVATE CP_USE_DOUBLES=0)
|
|
else()
|
|
target_link_libraries(${target_name} ${ENGINEX_CORE_LIB})
|
|
endif()
|
|
|
|
if(BUILD_SHARED_LIBS)
|
|
target_compile_definitions(${target_name} PRIVATE _USREXDLL=1)
|
|
endif()
|
|
|
|
set_target_properties(${target_name}
|
|
PROPERTIES
|
|
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
|
|
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
|
|
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
|
|
FOLDER "Extensions"
|
|
)
|
|
|
|
if(NOT opt_DNTLINK)
|
|
set(CC_EXTENSION_LIBS "${target_name};${CC_EXTENSION_LIBS}" CACHE INTERNAL "extensions for auto link to target application")
|
|
endif()
|
|
|
|
if(XCODE OR VS)
|
|
cocos_mark_code_files("${target_name}")
|
|
endif()
|
|
|
|
endfunction()
|
|
|
|
if(BUILD_EXTENSION_GUI)
|
|
add_subdirectory(GUI)
|
|
endif()
|
|
|
|
if(BUILD_EXTENSION_ASSETMANAGER)
|
|
add_subdirectory(assets-manager)
|
|
endif()
|
|
|
|
if(BUILD_EXTENSION_PARTICLE3D)
|
|
add_subdirectory(Particle3D)
|
|
endif()
|
|
|
|
if(BUILD_EXTENSION_PHYSICS_NODE)
|
|
add_subdirectory(physics-nodes)
|
|
endif()
|
|
|
|
if(BUILD_EXTENSION_SPINE)
|
|
add_subdirectory(spine)
|
|
endif()
|
|
|
|
if(BUILD_EXTENSION_DRAGONBONES)
|
|
add_subdirectory(DragonBones)
|
|
endif()
|
|
|
|
if(BUILD_EXTENSION_FAIRYGUI)
|
|
add_subdirectory(fairygui)
|
|
if(BUILD_SHARED_LIBS)
|
|
target_link_libraries(fairygui spine)
|
|
else()
|
|
target_include_directories(fairygui PUBLIC ${CMAKE_CURRENT_LIST_DIR}/spine/runtime/include)
|
|
endif()
|
|
endif()
|
|
|
|
if(BUILD_EXTENSION_IMGUIEXT)
|
|
add_subdirectory(ImGuiEXT)
|
|
endif()
|
|
|
|
if(BUILD_EXTENSION_COCOSTUDIO)
|
|
add_subdirectory(cocostudio)
|
|
if(BUILD_EXTENSION_SPINE)
|
|
target_compile_definitions(cocostudio PUBLIC CC_BUILD_WITH_SPINE=1)
|
|
if(BUILD_SHARED_LIBS)
|
|
target_link_libraries(cocostudio spine particle3d)
|
|
else()
|
|
target_include_directories(cocostudio PUBLIC ${CMAKE_CURRENT_LIST_DIR}/spine/runtime/include)
|
|
endif()
|
|
endif()
|
|
if(BUILD_EXTENSION_DRAGONBONES)
|
|
target_compile_definitions(cocostudio PRIVATE CC_BUILD_WITH_DRANGBONES=1)
|
|
if(BUILD_SHARED_LIBS)
|
|
target_link_libraries(cocostudio DragonBones)
|
|
endif()
|
|
endif()
|
|
endif()
|
|
|
|
if(BUILD_LUA_LIBS) # TODO: rename to BUILD_EXTENSION_LUA
|
|
add_subdirectory(scripting/lua-bindings)
|
|
endif()
|
|
|
|
message(STATUS "CC_EXTENSION_LIBS:${CC_EXTENSION_LIBS}")
|