diff --git a/Engine/lib/CMakeLists.txt b/Engine/lib/CMakeLists.txt index 3efbb5635..97c920db7 100644 --- a/Engine/lib/CMakeLists.txt +++ b/Engine/lib/CMakeLists.txt @@ -6,22 +6,20 @@ add_subdirectory(sdl ${CMAKE_BINARY_DIR}/temp/sdl2 EXCLUDE_FROM_ALL) # Png depends on zlib add_subdirectory(zlib ${CMAKE_BINARY_DIR}/temp/zlib EXCLUDE_FROM_ALL) -if (TORQUE_CPU_ARM32 OR TORQUE_CPU_ARM64) - set(PNG_ARM_NEON on CACHE BOOL "" FORCE) -endif (TORQUE_CPU_ARM32 OR TORQUE_CPU_ARM64) - -set(PNG_STATIC on CACHE BOOL "" FORCE) -set(PNG_BUILD_ZLIB on CACHE BOOL "" FORCE) -get_filename_component(ZLIB_ROOT "zlib" REALPATH BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}") -set(ZLIB_ROOT "${ZLIB_ROOT}" CACHE STRING "ZLib root location" FORCE) - # Assimp depends on zlib set(BUILD_SHARED_LIBS off CACHE STRING "") set(ASSIMP_BUILD_ZLIB off CACHE STRING "") set(ASSIMP_HUNTER_ENABLED off CACHE STRING "") add_subdirectory(assimp ${CMAKE_BINARY_DIR}/temp/assimp EXCLUDE_FROM_ALL) +set(PNG_STATIC on CACHE BOOL "" FORCE) +set(PNG_BUILD_ZLIB on CACHE BOOL "" FORCE) +set(PNG_TESTS off CACHE BOOL "" FORCE) +set(PNG_HARDWARE_OPTIMIZATIONS on CACHE BOOL "" FORCE) +get_filename_component(ZLIB_ROOT "zlib" REALPATH BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}") +set(ZLIB_ROOT "${ZLIB_ROOT}" CACHE STRING "ZLib root location" FORCE) add_subdirectory(lpng ${CMAKE_BINARY_DIR}/temp/lpng EXCLUDE_FROM_ALL) + add_subdirectory(ljpeg ${CMAKE_BINARY_DIR}/temp/ljpeg EXCLUDE_FROM_ALL) add_subdirectory(tinyxml ${CMAKE_BINARY_DIR}/temp/tinyxml EXCLUDE_FROM_ALL) add_subdirectory(opcode ${CMAKE_BINARY_DIR}/temp/opcode EXCLUDE_FROM_ALL) diff --git a/Engine/lib/lpng/CMakeLists.txt b/Engine/lib/lpng/CMakeLists.txt index 6451fcf1b..df7d67256 100644 --- a/Engine/lib/lpng/CMakeLists.txt +++ b/Engine/lib/lpng/CMakeLists.txt @@ -268,7 +268,7 @@ if(UNIX) symbol_prefix() endif() -find_program(AWK NAMES gawk awk) +#find_program(AWK NAMES gawk awk) include_directories(${CMAKE_CURRENT_BINARY_DIR}) diff --git a/Engine/source/CMakeLists.txt b/Engine/source/CMakeLists.txt index 804d3af5a..f610bdba4 100644 --- a/Engine/source/CMakeLists.txt +++ b/Engine/source/CMakeLists.txt @@ -313,11 +313,20 @@ if (NOT "${TORQUE_MODULE_USER_PATH}" STREQUAL "") list(APPEND TORQUE_MODULE_PATHS "${TORQUE_MODULE_USER_PATH}") endif() +# Before doing module scanning, store away the engine sources - we do this so that modules +# can be placed into the proper filters +set(TORQUE_SOURCE_FILES_TEMPORARY ${TORQUE_SOURCE_FILES}) +set(TORQUE_SOURCE_FILES "") + foreach (TORQUE_MODULE_PATH ${TORQUE_MODULE_PATHS}) # First find simple cmake scripts file(GLOB MODULE_SCRIPTS "${TORQUE_MODULE_PATH}/*.cmake") foreach (TORQUE_MODULE_SCRIPT ${MODULE_SCRIPTS}) include(${TORQUE_MODULE_SCRIPT}) + source_group("Modules/${TORQUE_MODULE_SCRIPT}" FILES ${TORQUE_SOURCE_FILES}) + + set(TORQUE_SOURCE_FILES_TEMPORARY ${TORQUE_SOURCE_FILES_TEMPORARY} ${TORQUE_SOURCE_FILES}) + set(TORQUE_SOURCE_FILES "") endforeach() # Next find sub projects @@ -329,10 +338,16 @@ foreach (TORQUE_MODULE_PATH ${TORQUE_MODULE_PATHS}) if (EXISTS "${POSSIBLE_PROJECT_ABSOLUTEPATH}/CMakeLists.txt") add_subdirectory("${POSSIBLE_PROJECT_ABSOLUTEPATH}" ${CMAKE_BINARY_DIR}/temp/${POSSIBLE_PROJECT} EXCLUDE_FROM_ALL) + source_group("Modules/${POSSIBLE_PROJECT}" FILES ${TORQUE_SOURCE_FILES}) + + set(TORQUE_SOURCE_FILES_TEMPORARY ${TORQUE_SOURCE_FILES_TEMPORARY} ${TORQUE_SOURCE_FILES}) + set(TORQUE_SOURCE_FILES "") endif() endforeach() endforeach() +set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES_TEMPORARY}) + ################# Executable Generation ################### if (APPLE) @@ -361,6 +376,9 @@ 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_compile_features(${TORQUE_APP_NAME} PRIVATE cxx_std_17) +# Generate the filters for the main Torque project +source_group(TREE "${CMAKE_SOURCE_DIR}/Engine/source") + # 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.