mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-01-19 20:24:49 +00:00
Add support for modules and libraries to CMake.
This commit is contained in:
parent
c950ca2c77
commit
82a36d8a32
|
|
@ -73,6 +73,53 @@ macro(addLib lib)
|
|||
target_link_libraries(${PROJECT_NAME} "${lib}")
|
||||
endmacro()
|
||||
|
||||
# adds a library dependency. Are processed on addExecutable or addStaticLib
|
||||
macro(addRequiredLibrary lib)
|
||||
#message(STATUS "${PROJECT_NAME} : add lib : ${lib}")
|
||||
LIST( APPEND ${PROJECT_NAME}_required_library ${lib} )
|
||||
endmacro()
|
||||
|
||||
# adds a link dependency. Are processed on addExecutable or addStaticLib
|
||||
macro(addRequiredLink lib)
|
||||
#message(STATUS "${PROJECT_NAME} : add lib : ${lib}")
|
||||
LIST( APPEND ${PROJECT_NAME}_required_link ${lib} )
|
||||
endmacro()
|
||||
|
||||
macro( _processProjectLibrary )
|
||||
# Append currect project to PROJECT_STACK
|
||||
LIST( APPEND PROJECT_STACK "${PROJECT_NAME}" )
|
||||
|
||||
foreach( lib ${${PROJECT_NAME}_required_library} )
|
||||
#message( "adding library dependency: ${lib}" )
|
||||
include( ${lib} )
|
||||
endforeach()
|
||||
|
||||
#clear required libraries
|
||||
set( ${PROJECT_NAME}_required_library )
|
||||
|
||||
# pop currect project form PROJECT_STACK
|
||||
LIST(REMOVE_AT PROJECT_STACK -1)
|
||||
|
||||
# get currect project form stack
|
||||
if( PROJECT_STACK )
|
||||
LIST(GET PROJECT_STACK -1 TEMP_PROJECT)
|
||||
project( ${TEMP_PROJECT} )
|
||||
endif()
|
||||
|
||||
|
||||
endmacro()
|
||||
|
||||
macro( _processProjectLinks )
|
||||
#message( "_processProjectLinks: ${PROJECT_NAME}" )
|
||||
foreach( lib ${${PROJECT_NAME}_required_link} )
|
||||
addLib( ${lib} )
|
||||
endforeach()
|
||||
|
||||
#clear required libraries
|
||||
set( ${PROJECT_NAME}_required_link )
|
||||
endmacro()
|
||||
|
||||
|
||||
# adds a path to search for libs
|
||||
macro(addLibPath dir)
|
||||
link_directories(${dir})
|
||||
|
|
@ -146,6 +193,9 @@ macro(addStaticLib)
|
|||
#foreach(dir ${${PROJECT_NAME}_paths})
|
||||
addInclude("${firstDir}")
|
||||
#endforeach()
|
||||
|
||||
_processProjectLinks()
|
||||
_processProjectLibrary()
|
||||
endmacro()
|
||||
|
||||
# macro to add an executable
|
||||
|
|
@ -161,6 +211,9 @@ macro(addExecutable)
|
|||
add_executable("${PROJECT_NAME}" WIN32 ${${PROJECT_NAME}_files})
|
||||
# omg - only use the first folder ... otehrwise we get lots of header name collisions
|
||||
addInclude("${firstDir}")
|
||||
|
||||
_processProjectLinks()
|
||||
_processProjectLibrary()
|
||||
endmacro()
|
||||
|
||||
macro(setupVersionNumbers)
|
||||
|
|
|
|||
Loading…
Reference in a new issue