Engine is now installable
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
@PACKAGE_INIT@
|
||||
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/EngineTargets.cmake")
|
||||
|
||||
check_required_components(Engine)
|
||||
+65
-25
@@ -1,8 +1,9 @@
|
||||
include (ExternalProject)
|
||||
|
||||
#--------------FreeType------------------------------
|
||||
set(FT_DISABLE_ZLIB ON)
|
||||
#--------------ZLIB------------------------------
|
||||
add_subdirectory(${ZLIB_ROOT})
|
||||
|
||||
#--------------FreeType------------------------------
|
||||
add_subdirectory(${FREETYPE_ROOT})
|
||||
|
||||
#------------ASSIMP---------------
|
||||
@@ -17,8 +18,6 @@ else()
|
||||
target_compile_options(assimp PRIVATE -Wno-error -fPIC)
|
||||
target_compile_options(IrrXML PRIVATE -fPIC)
|
||||
endif()
|
||||
#-------------BOOST----------------
|
||||
add_subdirectory(${BOOST_ROOT})
|
||||
|
||||
#-----------------KTX----------------------------
|
||||
set(KTX_FEATURE_TESTS off)
|
||||
@@ -28,13 +27,10 @@ add_subdirectory(${KTX_ROOT} ${KTX_ROOT})
|
||||
#--------------------JSON------------------
|
||||
set(JSON_MultipleHeaders ON CACHE INTERNAL "")
|
||||
set(JSON_BuildTests OFF CACHE INTERNAL "")
|
||||
set(JSON_Install OFF CACHE INTERNAL "")
|
||||
set(JSON_Install ON CACHE INTERNAL "")
|
||||
|
||||
add_subdirectory(${JSON_ROOT})
|
||||
|
||||
#--------------GLM------------------------------
|
||||
add_subdirectory(${GLM_ROOT})
|
||||
target_compile_options(glm INTERFACE /W0)
|
||||
|
||||
#--------------GLFW------------------------------
|
||||
set(ENKITS_BUILD_EXAMPLES OFF CACHE BOOL "Build basic example applications" )
|
||||
@@ -49,19 +45,6 @@ add_subdirectory(${GLFW_ROOT})
|
||||
#--------------EnTT------------------------------
|
||||
add_subdirectory(${ENTT_ROOT})
|
||||
|
||||
#--------------STB-----------------------------------
|
||||
add_library(stb INTERFACE)
|
||||
|
||||
target_include_directories(stb INTERFACE ${STB_ROOT})
|
||||
|
||||
#--------------Aftermath------------------------------
|
||||
add_library(nsam INTERFACE)
|
||||
|
||||
target_include_directories(nsam INTERFACE ${NSAM_ROOT}/include)
|
||||
target_link_libraries(nsam INTERFACE ${NSAM_ROOT}/lib/${CMAKE_PLATFORM}/*.lib)
|
||||
set_target_properties(nsam PROPERTIES NSAM_BINARY ${NSAM_ROOT}/lib/${CMAKE_PLATFORM}/GFSDK_Aftermath_Lib.${CMAKE_PLATFORM}.dll)
|
||||
set_target_properties(nsam PROPERTIES LLVM_BINARY ${NSAM_ROOT}/lib/${CMAKE_PLATFORM}/llvm_7_0_1.dll)
|
||||
|
||||
#--------------thread-pool------------------------------
|
||||
add_subdirectory(${THREADPOOL_ROOT})
|
||||
|
||||
@@ -74,22 +57,79 @@ string(TOLOWER ${SLANG_ROOT}/bin/windows-${CMAKE_PLATFORM}/release SLANG_BINARY_
|
||||
ExternalProject_Add(slang-build
|
||||
SOURCE_DIR ${SLANG_ROOT}
|
||||
BINARY_DIR ${SLANG_ROOT}
|
||||
CONFIGURE_COMMAND ${SLANG_ROOT}/premake.bat vs2019 --file=${CMAKE_SOURCE_DIR}/external/slang/premake5.lua gmake --arch=${CMAKE_PLATFORM} --deps=true
|
||||
CONFIGURE_COMMAND ${SLANG_ROOT}/premake.bat vs2019 --file=${SLANG_ROOT}/premake5.lua gmake --arch=${CMAKE_PLATFORM} --deps=true
|
||||
BUILD_COMMAND msbuild slang.sln -p:Configuration=Release -p:Platform=${CMAKE_PLATFORM}
|
||||
INSTALL_COMMAND "")
|
||||
INSTALL_COMMAND ""
|
||||
)
|
||||
elseif(UNIX)
|
||||
ExternalProject_Add(slang-build
|
||||
SOURCE_DIR ${SLANG_ROOT}
|
||||
BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}
|
||||
CONFIGURE_COMMAND ${CMAKE_SOURCE_DIR}/premake5 --file=${CMAKE_SOURCE_DIR}/external/slang/premake5.lua gmake --arch=${CMAKE_PLATFORM} --deps=true --build-location=build/linux
|
||||
BUILD_COMMAND make -C ${CMAKE_SOURCE_DIR}/external/slang/build/linux config=${SLANG_CONFIG}
|
||||
INSTALL_COMMAND "")
|
||||
INSTALL_COMMAND ""
|
||||
)
|
||||
endif()
|
||||
|
||||
add_library(slang INTERFACE)
|
||||
|
||||
target_include_directories(slang INTERFACE ${SLANG_ROOT})
|
||||
target_include_directories(slang INTERFACE
|
||||
$<BUILD_INTERFACE:${SLANG_ROOT}/>
|
||||
$<INSTALL_INTERFACE:include>
|
||||
)
|
||||
target_link_libraries(slang INTERFACE ${SLANG_BINARY_DIR}/*.lib)
|
||||
set_target_properties(slang PROPERTIES SLANG_BINARY ${SLANG_BINARY_DIR}/slang.dll)
|
||||
set_target_properties(slang PROPERTIES GLSLANG_BINARY ${SLANG_BINARY_DIR}/slang-glslang.dll)
|
||||
|
||||
install(DIRECTORY
|
||||
${SLANG_ROOT}
|
||||
DESTINATION ${CMAKE_INSTALL_PREFIX}/include
|
||||
FILES_MATCHING PATTERN "*.h"
|
||||
)
|
||||
|
||||
#--------------CRC++------------------------------
|
||||
add_library(crcpp INTERFACE)
|
||||
|
||||
target_include_directories(crcpp INTERFACE
|
||||
$<BUILD_INTERFACE:${CRCPP_ROOT}/inc>
|
||||
$<INSTALL_INTERFACE:include>
|
||||
)
|
||||
|
||||
install(FILES
|
||||
${CRCPP_ROOT}/inc/CRC.h
|
||||
DESTINATION ${CMAKE_INSTALL_PREFIX}/include
|
||||
)
|
||||
|
||||
#--------------GLM------------------------------
|
||||
add_library(glm INTERFACE)
|
||||
target_include_directories(glm INTERFACE
|
||||
$<BUILD_INTERFACE:${GLM_ROOT}>
|
||||
$<INSTALL_INTERFACE:include/glm>
|
||||
)
|
||||
|
||||
install(DIRECTORY
|
||||
${GLM_ROOT}/glm
|
||||
DESTINATION ${CMAKE_INSTALL_PREFIX}/include
|
||||
FILES_MATCHING PATTERN "*.h*"
|
||||
)
|
||||
|
||||
install(DIRECTORY
|
||||
${GLM_ROOT}/glm
|
||||
DESTINATION ${CMAKE_INSTALL_PREFIX}/include
|
||||
FILES_MATCHING PATTERN "*.inl"
|
||||
)
|
||||
|
||||
#--------------STB-----------------------------------
|
||||
add_library(stb INTERFACE)
|
||||
|
||||
target_include_directories(stb INTERFACE
|
||||
$<BUILD_INTERFACE:${STB_ROOT}>
|
||||
$<INSTALL_INTERFACE:include>
|
||||
)
|
||||
|
||||
install(DIRECTORY
|
||||
${STB_HEADERS}
|
||||
DESTINATION ${CMAKE_INSTALL_PREFIX}/include
|
||||
FILES_MATCHING PATTERN "*.h"
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user