mirror of https://github.com/axmolengine/axmol.git
Make core lib can be build as dll, fix link issue for external
This commit is contained in:
parent
98bdeef044
commit
3c7ede5859
|
@ -28,7 +28,7 @@
|
|||
|
||||
cmake_minimum_required(VERSION 3.6)
|
||||
|
||||
project(Cocos2d-x)
|
||||
project(EGNX)
|
||||
|
||||
# set default minimum deployment target
|
||||
# if(XCODE)
|
||||
|
|
|
@ -29,9 +29,11 @@
|
|||
# build luacocos2d if BUILD_LUA_LIBS=ON
|
||||
|
||||
# The version number
|
||||
set(COCOS2D_X_VERSION 4.0)
|
||||
set(EGNX_VERSION 1.0)
|
||||
|
||||
set(COCOS_CORE_LIB cocos2d)
|
||||
if(NOT DEFINED EGNX_CORE_LIB)
|
||||
set(EGNX_CORE_LIB cocos2d CACHE INTERNAL "The EGNX core lib name" )
|
||||
endif()
|
||||
|
||||
project(cocos2d_libs)
|
||||
|
||||
|
@ -80,7 +82,7 @@ set(COCOS_SRC cocos2d.cpp
|
|||
|
||||
list(APPEND COCOS_SRC ${COCOS_HEADER})
|
||||
|
||||
add_library(cocos2d ${COCOS_SRC})
|
||||
add_library(${EGNX_CORE_LIB} ${COCOS_SRC})
|
||||
|
||||
# if (NOT APPLE)
|
||||
# set_source_files_properties("audio/src/AudioEngineImpl.mm" PROPERTIES LANGUAGE CXX)
|
||||
|
@ -88,16 +90,16 @@ add_library(cocos2d ${COCOS_SRC})
|
|||
|
||||
# use external libs
|
||||
add_subdirectory(${COCOS2DX_ROOT_PATH}/external ${ENGINE_BINARY_PATH}/external)
|
||||
target_link_libraries(cocos2d external)
|
||||
target_link_libraries(${EGNX_CORE_LIB} external)
|
||||
|
||||
# add base macro define and compile options
|
||||
use_cocos2dx_compile_define(cocos2d)
|
||||
use_cocos2dx_compile_options(cocos2d)
|
||||
use_cocos2dx_compile_define(${EGNX_CORE_LIB})
|
||||
use_cocos2dx_compile_options(${EGNX_CORE_LIB})
|
||||
|
||||
# use all platform related system libs
|
||||
use_cocos2dx_libs_depend(cocos2d)
|
||||
use_cocos2dx_libs_depend(${EGNX_CORE_LIB})
|
||||
|
||||
target_include_directories(cocos2d
|
||||
target_include_directories(${EGNX_CORE_LIB}
|
||||
PUBLIC ${COCOS2DX_ROOT_PATH}
|
||||
PUBLIC ${COCOS2DX_ROOT_PATH}/external
|
||||
PUBLIC ${COCOS2DX_ROOT_PATH}/extensions
|
||||
|
@ -110,11 +112,11 @@ target_include_directories(cocos2d
|
|||
INTERFACE ${COCOS2DX_ROOT_PATH}/cocos/platform/${PLATFORM_FOLDER}
|
||||
)
|
||||
|
||||
set_target_properties(cocos2d
|
||||
set_target_properties(${EGNX_CORE_LIB}
|
||||
PROPERTIES
|
||||
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
|
||||
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
|
||||
VERSION "${COCOS2D_X_VERSION}"
|
||||
VERSION "${EGNX_VERSION}"
|
||||
FOLDER "Internal"
|
||||
)
|
||||
|
||||
|
@ -124,13 +126,13 @@ if(BUILD_LUA_LIBS)
|
|||
endif()
|
||||
|
||||
if(XCODE OR VS)
|
||||
cocos_mark_code_files("cocos2d")
|
||||
cocos_mark_code_files("${EGNX_CORE_LIB}")
|
||||
endif()
|
||||
|
||||
if(WINDOWS)
|
||||
# precompiled header. Compilation time speedup ~4x.
|
||||
target_sources(cocos2d PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/precheader.cpp")
|
||||
set_target_properties(cocos2d PROPERTIES COMPILE_FLAGS "/Yuprecheader.h /FIprecheader.h")
|
||||
target_sources(${EGNX_CORE_LIB} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/precheader.cpp")
|
||||
set_target_properties(${EGNX_CORE_LIB} PROPERTIES COMPILE_FLAGS "/Yuprecheader.h /FIprecheader.h")
|
||||
set_source_files_properties("${CMAKE_CURRENT_SOURCE_DIR}/precheader.cpp" PROPERTIES COMPILE_FLAGS "/Ycprecheader.h")
|
||||
# compile c as c++. needed for precompiled header
|
||||
set_source_files_properties(${COCOS_SPINE_SRC} base/ccFPSImages.c PROPERTIES LANGUAGE CXX)
|
||||
|
@ -142,5 +144,5 @@ add_subdirectory(${COCOS2DX_ROOT_PATH}/extensions ${ENGINE_BINARY_PATH}/extensio
|
|||
#if(XCODE)
|
||||
# # Later versions of Xcode clang want to compile C++17 with aligned allocation turned on and this is only supported on iOS 11.0+
|
||||
# # TODO: Only turn this off if ${CMAKE_XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET} < 11.0
|
||||
# target_compile_options(cocos2d PUBLIC $<$<COMPILE_LANGUAGE:CXX>:-fno-aligned-allocation>)
|
||||
# target_compile_options(${EGNX_CORE_LIB} PUBLIC $<$<COMPILE_LANGUAGE:CXX>:-fno-aligned-allocation>)
|
||||
#endif()
|
||||
|
|
|
@ -131,7 +131,7 @@ else()
|
|||
config_android_shared_libs("org.cocos2dx.${APP_NAME}" "${CMAKE_CURRENT_SOURCE_DIR}/proj.android/app/src")
|
||||
endif()
|
||||
|
||||
target_link_libraries(${APP_NAME} cocos2d)
|
||||
target_link_libraries(${APP_NAME} ${EGNX_CORE_LIB})
|
||||
target_include_directories(${APP_NAME}
|
||||
PRIVATE Classes
|
||||
PRIVATE ${COCOS2DX_ROOT_PATH}/cocos/audio/include/
|
||||
|
|
|
@ -127,7 +127,7 @@ else()
|
|||
config_android_shared_libs("org.cocos2dx.${APP_NAME}" "${CMAKE_CURRENT_SOURCE_DIR}/proj.android/app/src")
|
||||
endif()
|
||||
|
||||
target_link_libraries(${APP_NAME} cocos2d)
|
||||
target_link_libraries(${APP_NAME} ${EGNX_CORE_LIB})
|
||||
|
||||
target_include_directories(${APP_NAME} PRIVATE Classes)
|
||||
|
||||
|
|
|
@ -392,7 +392,7 @@ else()
|
|||
config_android_shared_libs("org.cocos2dx.${APP_NAME}" "${CMAKE_CURRENT_SOURCE_DIR}/proj.android/app/src")
|
||||
endif()
|
||||
|
||||
target_link_libraries(${APP_NAME} cocos2d)
|
||||
target_link_libraries(${APP_NAME} ${EGNX_CORE_LIB})
|
||||
|
||||
target_include_directories(${APP_NAME}
|
||||
PRIVATE Classes
|
||||
|
|
|
@ -117,7 +117,7 @@ else()
|
|||
config_android_shared_libs("org.cocos2dx.${APP_NAME}" "${CMAKE_CURRENT_SOURCE_DIR}/proj.android/app/src")
|
||||
endif()
|
||||
|
||||
target_link_libraries(${APP_NAME} cocos2d)
|
||||
target_link_libraries(${APP_NAME} ${EGNX_CORE_LIB})
|
||||
|
||||
target_include_directories(${APP_NAME} PRIVATE Classes)
|
||||
|
||||
|
|
Loading…
Reference in New Issue