Skip to content

Commit 77865ff

Browse files
authored
Refactor AXLinkHelpers.cmake
Refactor AXLinkHelpers.cmake around these 4 problems:
1 parent 6d6edca commit 77865ff

1 file changed

Lines changed: 37 additions & 18 deletions

File tree

cmake/Modules/AXLinkHelpers.cmake

Lines changed: 37 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ _1k_deprecated_32bit(axmol 3.0.0)
44
if(NOT CMAKE_GENERATOR MATCHES "Ninja")
55
set(BUILD_CONFIG_DIR "\$\(Configuration\)/")
66
else()
7-
set(BUILD_CONFIG_DIR "")
7+
set(BUILD_CONFIG_DIR "$<CONFIG>/")
88
endif()
99

1010
macro(ax_link_ext EXTENSION_ENABLED LINKLIB)
@@ -20,10 +20,19 @@ macro(ax_link_ext EXTENSION_ENABLED LINKLIB)
2020
endmacro()
2121

2222
function(ax_link_cxx_prebuilt APP_NAME AX_ROOT_DIR AX_PREBUILT_DIR)
23+
message(STATUS "Using Prebuilt feature from path:${_AX_ROOT}/${AX_PREBUILT_DIR}")
24+
message(STATUS " AX_PREBUILT_DIR=${AX_PREBUILT_DIR}")
2325
# stupid: exclude CMAKE_CXX_FLAGS_DEBUG CMAKE_C_FLAGS_DEBUG to avoid cmake generate
2426
# .vcxproj with incorrect debug msvc runtime, should be /MDd but got /MD
2527
set(AXSLCC_OUT_DIR_PROJ "${AXSLCC_OUT_DIR}")
26-
load_cache("${AX_ROOT_DIR}/${AX_PREBUILT_DIR}" INCLUDE_INTERNALS _NUGET_PACKAGE_DIR EXCLUDE thirdparty_LIB_DEPENDS CMAKE_CXX_FLAGS_DEBUG CMAKE_C_FLAGS_DEBUG)
28+
load_cache(
29+
"${AX_ROOT_DIR}/${AX_PREBUILT_DIR}"
30+
INCLUDE_INTERNALS _NUGET_PACKAGE_DIR
31+
EXCLUDE thirdparty_LIB_DEPENDS
32+
CMAKE_CXX_FLAGS_DEBUG
33+
CMAKE_C_FLAGS_DEBUG
34+
CMAKE_BUILD_TYPE
35+
)
2736
set(AXSLCC_OUT_DIR_ENGINE ${AXSLCC_OUT_DIR})
2837
set(AXSLCC_OUT_DIR "${AXSLCC_OUT_DIR_PROJ}" CACHE STRING "" FORCE)
2938
unset(AXSLCC_OUT_DIR_PROJ)
@@ -122,7 +131,7 @@ function(ax_link_cxx_prebuilt APP_NAME AX_ROOT_DIR AX_PREBUILT_DIR)
122131
PRIVATE ${AX_ROOT_DIR}/3rdparty/jpeg-turbo/_x/lib/${PLATFORM_NAME}/${ARCH_ALIAS}
123132
PRIVATE ${AX_ROOT_DIR}/3rdparty/curl/_x/lib/${PLATFORM_NAME}/${ARCH_ALIAS}
124133
PRIVATE ${AX_ROOT_DIR}/3rdparty/opus/_x/lib/${PLATFORM_NAME}/${ARCH_ALIAS}
125-
PRIVATE ${AX_ROOT_DIR}/${AX_PREBUILT_DIR}/lib # cmake will auto add suffix '/$(Configuration)', refer to https://github.com/Kitware/CMake/blob/master/Source/cmVisualStudio10TargetGenerator.cxx#L4145
134+
PRIVATE ${AX_ROOT_DIR}/${AX_PREBUILT_DIR}/lib/${CMAKE_BUILD_TYPE}
126135
)
127136

128137
# Linking platform libs
@@ -161,28 +170,38 @@ function(ax_link_cxx_prebuilt APP_NAME AX_ROOT_DIR AX_PREBUILT_DIR)
161170
list(APPEND LIBS opus)
162171
endif()
163172

164-
ax_link_ext(AX_ENABLE_EXT_DRAGONBONES "DragonBones" "${AX_ROOT_DIR}/extensions/DragonBones/src")
165-
ax_link_ext(AX_ENABLE_EXT_COCOSTUDIO "cocostudio" "${AX_ROOT_DIR}/extensions/cocostudio/src")
173+
ax_link_ext(AX_ENABLE_3D_PHYSICS "bullet" "${AX_ROOT_DIR}/3rdparty/bullet")
166174
ax_link_ext(AX_ENABLE_EXT_ASSETMANAGER "assets-manager" "${AX_ROOT_DIR}/extensions/assets-manager/src")
167-
ax_link_ext(AX_ENABLE_EXT_PARTICLE3D "particle3d" "${AX_ROOT_DIR}/extensions/Particle3D/src")
168-
ax_link_ext(AX_ENABLE_EXT_INSPECTOR "Inspector" "${AX_ROOT_DIR}/extensions/Inspector/src")
169-
ax_link_ext(AX_ENABLE_EXT_SDFGEN "SDFGen" "${AX_ROOT_DIR}/extensions/SDFGen/src")
170-
ax_link_ext(AX_ENABLE_EXT_DRAWNODEEX "DrawNodeEx" "${AX_ROOT_DIR}/extensions/DrawNodeEx/src")
171-
ax_link_ext(AX_ENABLE_EXT_GUI "GUI" "${AX_ROOT_DIR}/extensions/GUI/src")
172-
ax_link_ext(AX_ENABLE_EXT_FAIRYGUI "fairygui" "${AX_ROOT_DIR}/extensions/fairygui/src")
173-
ax_link_ext(AX_ENABLE_EXT_LIVE2D "Live2D" "${AX_ROOT_DIR}/extensions/Live2D/Framework/src")
175+
ax_link_ext(AX_ENABLE_EXT_COCOSTUDIO "cocostudio" "${AX_ROOT_DIR}/extensions/cocostudio/src")
176+
ax_link_ext(AX_ENABLE_EXT_DRAGONBONES "DragonBones" "${AX_ROOT_DIR}/extensions/DragonBones/src")
177+
# TODO: Modify Effekseer's include dirs
174178
ax_link_ext(AX_ENABLE_EXT_EFFEKSEER "EffekseerForCocos2d-x" "${AX_ROOT_DIR}/extensions/Effekseer")
175-
ax_link_ext(AX_ENABLE_EXT_PHYSICS_NODE "physics-nodes" "${AX_ROOT_DIR}/extensions/physics-nodes/src")
176-
ax_link_ext(AX_ENABLE_NAVMESH "recast" "${AX_ROOT_DIR}/3rdparty/recast")
177-
ax_link_ext(AX_ENABLE_3D_PHYSICS "bullet" "${AX_ROOT_DIR}/3rdparty/bullet")
178-
179+
ax_link_ext(AX_ENABLE_EXT_FAIRYGUI "fairygui"
180+
"${AX_ROOT_DIR}/extensions/fairygui/src"
181+
"${AX_ROOT_DIR}/extensions/fairygui/src/fairygui"
182+
)
183+
ax_link_ext(AX_ENABLE_EXT_GUI "GUI"
184+
"${AX_ROOT_DIR}/extensions/GUI/src"
185+
"${AX_ROOT_DIR}/extensions/GUI/src/GUI"
186+
)
179187
ax_link_ext(AX_ENABLE_EXT_IMGUI "ImGui"
180-
"${AX_ROOT_DIR}/extensions/ImGui/src" "${AX_ROOT_DIR}/extensions/ImGui/src/ImGui/imgui"
188+
"${AX_ROOT_DIR}/extensions/ImGui/src" "${AX_ROOT_DIR}/extensions/ImGui/src/ImGui/imgui"
181189
)
182-
190+
ax_link_ext(AX_ENABLE_EXT_INSPECTOR "Inspector" "${AX_ROOT_DIR}/extensions/Inspector/src")
191+
ax_link_ext(AX_ENABLE_EXT_LIVE2D "Live2D"
192+
"${AX_ROOT_DIR}/extensions/Live2D/Framework/src"
193+
"${AX_ROOT_DIR}/extensions/Live2D/Core/include"
194+
)
195+
ax_link_ext(AX_ENABLE_EXT_PARTICLE3D "particle3d" "${AX_ROOT_DIR}/extensions/Particle3D/src")
196+
ax_link_ext(AX_ENABLE_EXT_PHYSICS_NODE "physics-nodes" "${AX_ROOT_DIR}/extensions/physics-nodes/src")
197+
ax_link_ext(AX_ENABLE_NAVMESH "recast" "${AX_ROOT_DIR}/3rdparty/recast")
198+
ax_link_ext(AX_ENABLE_EXT_SDFGEN "SDFGen" "${AX_ROOT_DIR}/extensions/SDFGen/src")
183199
ax_link_ext(AX_ENABLE_EXT_SPINE "spine"
184200
"${AX_ROOT_DIR}/extensions/spine/runtime/include" "${AX_ROOT_DIR}/extensions/spine/src"
185201
)
202+
ax_link_ext(AX_ENABLE_EXT_DRAWNODEEX "DrawNodeEx" "${AX_ROOT_DIR}/extensions/DrawNodeEx/src")
203+
204+
186205

187206
if(WINDOWS)
188207
target_link_libraries(${APP_NAME}

0 commit comments

Comments
 (0)