mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-13 15:44:36 +00:00
* Feature: Add TORQUE_ADDITIONAL_LIBRARY_BINARIES for modules to specify eg. dll files to be installed next to the executable. On OSX this installs the file into the frameworks directory.
This commit is contained in:
parent
eaa18b42df
commit
a71ebf6ea8
1 changed files with 29 additions and 7 deletions
|
|
@ -7,16 +7,23 @@ endif (APPLE)
|
||||||
|
|
||||||
################# Initialize Common Variables ###################
|
################# Initialize Common Variables ###################
|
||||||
|
|
||||||
|
# All include directories to search. Modules should append to this when they want includes to point
|
||||||
|
# into themselves.
|
||||||
set(TORQUE_INCLUDE_DIRECTORIES "")
|
set(TORQUE_INCLUDE_DIRECTORIES "")
|
||||||
|
|
||||||
|
# All library binaries to install. Modules should append to this the path of any library binaries (.so, .dylib, .dll)
|
||||||
|
# that should be installed next to the executable.
|
||||||
|
set(TORQUE_ADDITIONAL_LIBRARY_BINARIES "")
|
||||||
|
|
||||||
|
# All compile definitions. Modules should append to this if there is any special defines needed.
|
||||||
set(TORQUE_COMPILE_DEFINITIONS ICE_NO_DLL PCRE_STATIC TORQUE_ADVANCED_LIGHTING TORQUE_SHADERGEN
|
set(TORQUE_COMPILE_DEFINITIONS ICE_NO_DLL PCRE_STATIC TORQUE_ADVANCED_LIGHTING TORQUE_SHADERGEN
|
||||||
TORQUE_OPCODE TORQUE_ASSIMP TORQUE_SDL TORQUE_COLLADA
|
TORQUE_OPCODE TORQUE_ASSIMP TORQUE_SDL TORQUE_COLLADA
|
||||||
TORQUE_UNICODE UNICODE _UNICODE)
|
TORQUE_UNICODE UNICODE _UNICODE)
|
||||||
|
|
||||||
|
# All link libraries. Modules should append to this the path to specify additional link libraries (.a, .lib, .dylib, .so)
|
||||||
set(TORQUE_LINK_LIBRARIES tinyxml collada ljpeg squish png_static opcode assimp
|
set(TORQUE_LINK_LIBRARIES tinyxml collada ljpeg squish png_static opcode assimp
|
||||||
SDL2 glad pcre convexDecomp zlib)
|
SDL2 glad pcre convexDecomp zlib)
|
||||||
|
|
||||||
set(TORQUE_SOURCE_FILES "main/main.cpp")
|
|
||||||
|
|
||||||
################# Set Conditional Engine Defines ###################
|
################# Set Conditional Engine Defines ###################
|
||||||
|
|
||||||
if (TORQUE_OPENGL)
|
if (TORQUE_OPENGL)
|
||||||
|
|
@ -69,6 +76,8 @@ endif (UNIX AND NOT APPLE)
|
||||||
|
|
||||||
################# Collect Source Files ###################
|
################# Collect Source Files ###################
|
||||||
|
|
||||||
|
set(TORQUE_SOURCE_FILES "main/main.cpp")
|
||||||
|
|
||||||
# Handle app
|
# Handle app
|
||||||
file(GLOB TORQUE_APP_SOURCES "app/*.cpp" "app/net/*.cpp")
|
file(GLOB TORQUE_APP_SOURCES "app/*.cpp" "app/net/*.cpp")
|
||||||
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_APP_SOURCES})
|
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_APP_SOURCES})
|
||||||
|
|
@ -352,6 +361,19 @@ target_link_libraries(${TORQUE_APP_NAME} ${TORQUE_LINK_LIBRARIES})
|
||||||
target_include_directories(${TORQUE_APP_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} "${CMAKE_BINARY_DIR}/temp" ${TORQUE_INCLUDE_DIRECTORIES})
|
target_include_directories(${TORQUE_APP_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} "${CMAKE_BINARY_DIR}/temp" ${TORQUE_INCLUDE_DIRECTORIES})
|
||||||
target_compile_features(${TORQUE_APP_NAME} PRIVATE cxx_std_17)
|
target_compile_features(${TORQUE_APP_NAME} PRIVATE cxx_std_17)
|
||||||
|
|
||||||
|
# Process library binaries - these are coming from modules that are providing links to external, precompiled code that should be included
|
||||||
|
# with the executable. This is done because on Windows, the .lib is separate from the .dll so we can't automatically scan for shared
|
||||||
|
# objects in our link libraries in that case.
|
||||||
|
foreach (LIBRARY_BINARY ${TORQUE_ADDITIONAL_LIBRARY_BINARIES})
|
||||||
|
if (APPLE)
|
||||||
|
# For OSX, we want these binaries to be copied to the Frameworks directory
|
||||||
|
add_custom_command(TARGET ${TORQUE_APP_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${LIBRARY_BINARY} "${TORQUE_APP_GAME_DIRECTORY}/${TORQUE_APP_NAME}.app/Contents/Frameworks")
|
||||||
|
else()
|
||||||
|
# All other platforms expect the file next to the executable
|
||||||
|
add_custom_command(TARGET ${TORQUE_APP_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${LIBRARY_BINARY} "${TORQUE_APP_GAME_DIRECTORY}")
|
||||||
|
endif (APPLE)
|
||||||
|
endforeach()
|
||||||
|
|
||||||
# Process link libraries for dynamic links - we do this on OSX/Linux to ensure the binaries end up in the correct App directory
|
# Process link libraries for dynamic links - we do this on OSX/Linux to ensure the binaries end up in the correct App directory
|
||||||
# as in the root CMake we force everything to be in game. This is necessary because on these platforms these are considered "libraries"
|
# as in the root CMake we force everything to be in game. This is necessary because on these platforms these are considered "libraries"
|
||||||
# and not runtime binaries like we configure in the root CMake. We don't globally set library outputs to avoid outputting eg. a files to
|
# and not runtime binaries like we configure in the root CMake. We don't globally set library outputs to avoid outputting eg. a files to
|
||||||
|
|
@ -365,11 +387,11 @@ if (UNIX)
|
||||||
|
|
||||||
# Only pay attention to shared libraries and make them output to the app resources
|
# Only pay attention to shared libraries and make them output to the app resources
|
||||||
if ("${LINK_LIBRARY_TYPE}" STREQUAL "SHARED_LIBRARY")
|
if ("${LINK_LIBRARY_TYPE}" STREQUAL "SHARED_LIBRARY")
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
set_target_properties(${GAME_LINK_LIBRARY} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${TORQUE_APP_GAME_DIRECTORY}/${TORQUE_APP_NAME}.app/Contents/Frameworks")
|
set_target_properties(${GAME_LINK_LIBRARY} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${TORQUE_APP_GAME_DIRECTORY}/${TORQUE_APP_NAME}.app/Contents/Frameworks")
|
||||||
else()
|
else()
|
||||||
set_target_properties(${GAME_LINK_LIBRARY} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${TORQUE_APP_GAME_DIRECTORY}")
|
set_target_properties(${GAME_LINK_LIBRARY} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${TORQUE_APP_GAME_DIRECTORY}")
|
||||||
endif(APPLE)
|
endif(APPLE)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue