Make assimp optional

This commit is contained in:
Georg Hagen
2024-05-22 14:38:51 +02:00
parent 640ca59dcd
commit cd2b8cc822
3 changed files with 42 additions and 21 deletions

View File

@@ -2,8 +2,8 @@ add_subdirectory(glm)
if (NOT ANDROID AND NOT IOS) if (NOT ANDROID AND NOT IOS)
add_subdirectory(glfw) add_subdirectory(glfw)
add_subdirectory(ftxui) add_subdirectory(ftxui)
add_subdirectory(assimp)
endif() endif()
add_subdirectory(assimp)
add_subdirectory(fmt) add_subdirectory(fmt)
add_subdirectory(spdlog) add_subdirectory(spdlog)
add_subdirectory(yaml-cpp) add_subdirectory(yaml-cpp)

View File

@@ -1,23 +1,39 @@
include(FetchContent) include(FetchContent)
if(NOT DEFINED ASSIMP_REPO) find_package(assimp QUIET)
set(ASSIMP_REPO https://github.com/assimp/assimp.git) if (assimp_FOUND)
message("Using system assimp")
elseif (USE_ASSIMP)
if(NOT DEFINED ASSIMP_REPO)
set(ASSIMP_REPO https://github.com/assimp/assimp.git)
endif ()
FetchContent_Declare(
assimp
EXCLUDE_FROM_ALL
GIT_REPOSITORY ${ASSIMP_REPO}
GIT_TAG v5.0.1
GIT_SHALLOW TRUE
)
set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)
set(ASSIMP_BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(ASSIMP_BUILD_SAMPLES OFF CACHE BOOL "" FORCE)
set(ASSIMP_INJECT_DEBUG_POSTFIX OFF CACHE BOOL "" FORCE)
set(ASSIMP_INSTALL OFF CACHE BOOL "" FORCE)
set(ASSIMP_BUILD_ASSIMP_TOOLS OFF CACHE BOOL "" FORCE)
set(ASSIMP_BUILD_SAMPLES OFF CACHE BOOL "" FORCE)
FetchContent_MakeAvailable(assimp)
set(assimp_FOUND ON PARENT_SCOPE)
endif () endif ()
FetchContent_Declare(
assimp
EXCLUDE_FROM_ALL
GIT_REPOSITORY ${ASSIMP_REPO}
GIT_TAG v5.0.1
GIT_SHALLOW TRUE
)
set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE) function(LinkAssimp TARGET)
set(ASSIMP_BUILD_TESTS OFF CACHE BOOL "" FORCE) if (NOT assimp_FOUND)
set(ASSIMP_BUILD_SAMPLES OFF CACHE BOOL "" FORCE) find_package(assimp QUIET)
set(ASSIMP_INJECT_DEBUG_POSTFIX OFF CACHE BOOL "" FORCE) endif ()
set(ASSIMP_INSTALL OFF CACHE BOOL "" FORCE) if (assimp_FOUND)
set(ASSIMP_BUILD_ASSIMP_TOOLS OFF CACHE BOOL "" FORCE) target_link_libraries(${TARGET} PUBLIC assimp)
set(ASSIMP_BUILD_SAMPLES OFF CACHE BOOL "" FORCE) endif ()
endfunction()
FetchContent_MakeAvailable(assimp)

View File

@@ -1,10 +1,14 @@
cmake_minimum_required(VERSION 3.28 FATAL_ERROR) cmake_minimum_required(VERSION 3.28 FATAL_ERROR)
option(USE_ASSIMP "If assimp should be used" ON)
include(cmake/VarsFromFile.cmake) include(cmake/VarsFromFile.cmake)
include(cmake/SetCompilerSettings.cmake) include(cmake/SetCompilerSettings.cmake)
include(cmake/SetupVulkan.cmake) include(cmake/SetupVulkan.cmake)
include(cmake/Filter.cmake) include(cmake/Filter.cmake)
VarsFromFile("DependencyMirrors.txt") # Load mirror list (for CICD)
set(CMAKE_POLICY_DEFAULT_CMP0077 NEW) set(CMAKE_POLICY_DEFAULT_CMP0077 NEW)
if(LINUX) if(LINUX)
@@ -84,7 +88,6 @@ if (NOT ANDROID AND NOT IOS)
if (libjpeg-turbo_FOUND) if (libjpeg-turbo_FOUND)
target_link_libraries(openVulkanoCpp PRIVATE libjpeg-turbo::turbojpeg) target_link_libraries(openVulkanoCpp PRIVATE libjpeg-turbo::turbojpeg)
endif() endif()
target_link_libraries(openVulkanoCpp PRIVATE assimp)
target_link_libraries(openVulkanoCpp PRIVATE ftxui::screen ftxui::dom ftxui::component) target_link_libraries(openVulkanoCpp PRIVATE ftxui::screen ftxui::dom ftxui::component)
endif() endif()
@@ -106,4 +109,6 @@ if(CMAKE_BUILD_TYPE STREQUAL "Debug")
add_compile_definitions(DEBUG) add_compile_definitions(DEBUG)
endif() endif()
SetGlmDefines(openVulkanoCpp) SetGlmDefines(openVulkanoCpp)
LinkAssimp(openVulkanoCpp)