* Feature: Implement scanning for sub projects.

This commit is contained in:
Robert MacGregor 2022-05-21 20:01:23 -04:00
parent b23554295c
commit 74faab3fb4
3 changed files with 35 additions and 3 deletions

View file

@ -78,9 +78,11 @@ set(TORQUE_NO_DSO_GENERATION ON)
if(NOT TORQUE_SCRIPT_EXTENSION)
set(TORQUE_SCRIPT_EXTENSION "tscript" CACHE STRING "The default script extension to use for TorqueScript files")
endif()
mark_as_advanced(TORQUE_SCRIPT_EXTENSION)
set(TORQUE_MODULE_USER_PATH "" CACHE PATH "Additional search path for modules aside from the default Tools/CMake/modules.")
mark_as_advanced(TORQUE_MODULE_USER_PATH)
option(TORQUE_USE_ZENITY "use the Zenity backend for NFD" OFF)
mark_as_advanced(TORQUE_USE_ZENITY)

View file

@ -115,8 +115,8 @@ endif (WIN32)
# Handle platformSDL
file(GLOB TORQUE_PLATFORM_SDL_SOURCES "platformSDL/*.cpp" "platformSDL/threads/*.cpp")
set(TORQUE_COMPILE_DEFINITIONS ICE_NO_DLL PCRE_STATIC TORQUE_ADVANCED_LIGHTING TORQUE_SHADERGEN
TORQUE_OPENGL TORQUE_OPCODE TORQUE_ASSIMP TORQUE_SDL TORQUE_COLLADA
set(TORQUE_COMPILE_DEFINITIONS ICE_NO_DLL PCRE_STATIC TORQUE_ADVANCED_LIGHTING TORQUE_SHADERGEN
TORQUE_OPENGL TORQUE_OPCODE TORQUE_ASSIMP TORQUE_SDL TORQUE_COLLADA
TORQUE_UNICODE UNICODE _UNICODE)
################# Start building libs ###################
@ -153,6 +153,12 @@ endif (APPLE)
# Search module directories
set(TORQUE_MODULE_PATHS "${CMAKE_SOURCE_DIR}/Tools/CMake/modules")
message("PATH: ${TORQUE_MODULE_USER_PATH}")
if (NOT "${TORQUE_MODULE_USER_PATH}" STREQUAL "")
list(APPEND TORQUE_MODULE_PATHS "${TORQUE_MODULE_USER_PATH}")
endif()
foreach (TORQUE_MODULE_PATH ${TORQUE_MODULE_PATHS})
# First find simple cmake scripts
file(GLOB MODULE_SCRIPTS "${TORQUE_MODULE_PATH}/*.cmake")
@ -162,6 +168,19 @@ foreach (TORQUE_MODULE_PATH ${TORQUE_MODULE_PATHS})
message("Including Module Script: ${TORQUE_MODULE_SCRIPT}")
include(${TORQUE_MODULE_SCRIPT})
endforeach()
# Next find sub projects
SUBDIRLIST(POSSIBLE_PROJECTS "${TORQUE_MODULE_PATH}")
foreach (POSSIBLE_PROJECT ${POSSIBLE_PROJECTS})
# Retrieve the absolute path of this possible project
get_filename_component(POSSIBLE_PROJECT_ABSOLUTEPATH "${POSSIBLE_PROJECT}"
REALPATH BASE_DIR "${TORQUE_MODULE_PATH}")
message("SCANNING: ${POSSIBLE_PROJECT_ABSOLUTEPATH}")
if (EXISTS "${POSSIBLE_PROJECT_ABSOLUTEPATH}/CMakeLists.txt")
add_subdirectory("${POSSIBLE_PROJECT_ABSOLUTEPATH}" ${CMAKE_BINARY_DIR}/temp/${POSSIBLE_PROJECT} EXCLUDE_FROM_ALL)
endif()
endforeach()
endforeach()
# Final executable

View file

@ -36,3 +36,14 @@ function(installTemplate templateName)
add_subdirectory("${CMAKE_SOURCE_DIR}/Templates/${templateName}")
endfunction()
MACRO(SUBDIRLIST result curdir)
FILE(GLOB children RELATIVE ${curdir} ${curdir}/*)
SET(dirlist "")
FOREACH(child ${children})
IF(IS_DIRECTORY ${curdir}/${child})
LIST(APPEND dirlist ${child})
ENDIF()
ENDFOREACH()
SET(${result} ${dirlist})
ENDMACRO()