216 lines
6.5 KiB
CMake
216 lines
6.5 KiB
CMake
#------------------------------
|
|
# GLFW
|
|
# Desktop Window Library
|
|
#------------------------------
|
|
if(NOT TARGET glfw AND NOT PLATFORM_ANDROID)
|
|
set(GLFW_INSTALL OFF)
|
|
set(GLFW_BUILD_EXAMPLES OFF)
|
|
set(GLFW_BUILD_TESTS OFF)
|
|
set(GLFW_BUILD_DOCS OFF)
|
|
set(BUILD_SHARED_LIBS OFF)
|
|
set(GLFW_USE_HYBRID_HPG ON)
|
|
|
|
set(BUILD_SHARED_LIBS OFF)
|
|
|
|
add_subdirectory(glfw)
|
|
set_property(TARGET glfw PROPERTY FOLDER "GameLib")
|
|
endif()
|
|
|
|
#------------------------------
|
|
# GLM
|
|
# Game mathematics library
|
|
#------------------------------
|
|
if(NOT TARGET glm)
|
|
set(BUILD_SHARED_LIBS OFF)
|
|
add_subdirectory(glm)
|
|
set_property(TARGET glm PROPERTY FOLDER "GameLib")
|
|
endif()
|
|
|
|
#------------------------------
|
|
# zpl-c/enet
|
|
# ENet reliable UDP networking library
|
|
#------------------------------
|
|
if(NOT TARGET enet)
|
|
if(ZP_BUILD_SHARED_LIBS)
|
|
set(ENET_STATIC OFF)
|
|
set(ENET_SHARED ON)
|
|
else()
|
|
set(ENET_STATIC ON)
|
|
set(ENET_SHARED OFF)
|
|
endif()
|
|
|
|
add_subdirectory(enet)
|
|
set_property(TARGET enet PROPERTY FOLDER "GameLib")
|
|
endif()
|
|
|
|
#------------------------------
|
|
# GLAD
|
|
# OpenGL
|
|
#------------------------------
|
|
if(NOT TARGET glad AND NOT PLATFORM_ANDROID)
|
|
set(BUILD_SHARED_LIBS OFF)
|
|
add_subdirectory(glad)
|
|
set_property(TARGET glad PROPERTY FOLDER "GameLib")
|
|
endif()
|
|
|
|
#------------------------------
|
|
# Lua
|
|
# lua lib
|
|
#------------------------------
|
|
if(NOT TARGET lua)
|
|
project(lua VERSION 4.6 LANGUAGES C)
|
|
file(GLOB PROJECT_SOURCE lua/*.h lua/*.c)
|
|
add_library(lua STATIC ${PROJECT_SOURCE})
|
|
target_include_directories(lua PUBLIC lua/)
|
|
endif()
|
|
|
|
#------------------------------
|
|
# GLAD
|
|
# OpenGL
|
|
#------------------------------
|
|
if(NOT TARGET sol2)
|
|
set(SOL2_ENABLE_INSTALL OFF)
|
|
set(SOL2_TESTS_SINGLE OFF)
|
|
set(SOL2_TESTS_EXAMPLES OFF)
|
|
set(SOL2_TESTS_INTEROP_EXAMPLES OFF)
|
|
set(BUILD_LUA_AS_DLL OFF)
|
|
set(SOL2_BUILD_LUA OFF)
|
|
|
|
if(ZP_BUILD_SHARED_LIBS)
|
|
set(BUILD_SHARED_LIBS ON)
|
|
else()
|
|
set(BUILD_SHARED_LIBS OFF)
|
|
endif()
|
|
|
|
add_subdirectory(sol2)
|
|
set_property(TARGET sol2 PROPERTY FOLDER "GameLib")
|
|
endif()
|
|
|
|
#------------------------------
|
|
# ASSIMP
|
|
# Model loading library
|
|
#------------------------------
|
|
if(NOT TARGET assimp)
|
|
if(ZP_BUILD_SHARED_LIBS)
|
|
set(BUILD_SHARED_LIBS ON)
|
|
else()
|
|
set(BUILD_SHARED_LIBS OFF)
|
|
endif()
|
|
|
|
cmake_policy(SET CMP0077 NEW) # set() overrides option()
|
|
|
|
set(ASM686 OFF)
|
|
set(AMD64 ON)
|
|
set(ASSIMP_BUILD_ZLIB ON)
|
|
set(ASSIMP_BUILD_TESTS OFF)
|
|
set(ZLIB_AMD64 ON)
|
|
set(ASSIMP_NO_EXPORT ON)
|
|
set(ASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT OFF)
|
|
#set(ASSIMP_BUILD_FBX_IMPORTER ON)
|
|
|
|
set(ASSIMP_BUILD_B3D_IMPORTER ON)
|
|
set(ASSIMP_BUILD_X3D_IMPORTER ON)
|
|
|
|
set(ASSIMP_BUILD_DRACO OFF)
|
|
add_subdirectory(assimp)
|
|
|
|
set_property(TARGET assimp PROPERTY FOLDER "GameLib")
|
|
|
|
if(BUILD_SHARED_LIBS)
|
|
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|
if(WIN32)
|
|
if(MSVC)
|
|
if(CMAKE_GENERATOR MATCHES "Visual Studio")
|
|
set(ZEPHA_DLL_TO_COPY
|
|
${ZEPHA_DLL_TO_COPY}
|
|
${CMAKE_CURRENT_BINARY_DIR}/assimp/bin/Debug/assimp-vc142-mtd.dll
|
|
CACHE INTERNAL "ZEPHA_DLL_TO_COPY")
|
|
else()
|
|
set(ZEPHA_DLL_TO_COPY
|
|
${ZEPHA_DLL_TO_COPY}
|
|
${CMAKE_CURRENT_BINARY_DIR}/assimp/bin/assimp-vc142-mtd.dll
|
|
CACHE INTERNAL "ZEPHA_DLL_TO_COPY")
|
|
endif()
|
|
else(MSVC)
|
|
set(ZEPHA_DLL_TO_COPY
|
|
${ZEPHA_DLL_TO_COPY}
|
|
${CMAKE_CURRENT_BINARY_DIR}/assimp/bin/libassimpd.dll
|
|
CACHE INTERNAL "ZEPHA_DLL_TO_COPY")
|
|
endif(MSVC)
|
|
else(WIN32)
|
|
set(ZEPHA_DLL_TO_COPY
|
|
${ZEPHA_DLL_TO_COPY}
|
|
${CMAKE_CURRENT_BINARY_DIR}/assimp/bin/libassimpd.so
|
|
CACHE INTERNAL "ZEPHA_DLL_TO_COPY")
|
|
endif(WIN32)
|
|
else()
|
|
if(WIN32)
|
|
if(MSVC)
|
|
if(CMAKE_GENERATOR MATCHES "Visual Studio")
|
|
set(ZEPHA_DLL_TO_COPY
|
|
${ZEPHA_DLL_TO_COPY}
|
|
${CMAKE_CURRENT_BINARY_DIR}/assimp/bin/Release/assimp-vc142-mt.dll
|
|
CACHE INTERNAL "ZEPHA_DLL_TO_COPY")
|
|
else()
|
|
set(ZEPHA_DLL_TO_COPY
|
|
${ZEPHA_DLL_TO_COPY}
|
|
${CMAKE_CURRENT_BINARY_DIR}/assimp/bin/assimp-vc142-mt.dll
|
|
CACHE INTERNAL "ZEPHA_DLL_TO_COPY")
|
|
endif()
|
|
else(MSVC)
|
|
set(ZEPHA_DLL_TO_COPY
|
|
${ZEPHA_DLL_TO_COPY}
|
|
${CMAKE_CURRENT_BINARY_DIR}/assimp/bin/libassimp.dll
|
|
CACHE INTERNAL "ZEPHA_DLL_TO_COPY")
|
|
endif(MSVC)
|
|
else(WIN32)
|
|
set(ZEPHA_DLL_TO_COPY
|
|
${ZEPHA_DLL_TO_COPY}
|
|
${CMAKE_CURRENT_BINARY_DIR}/assimp/bin/libassimp.so
|
|
CACHE INTERNAL "ZEPHA_DLL_TO_COPY")
|
|
endif(WIN32)
|
|
endif()
|
|
endif()
|
|
endif()
|
|
|
|
#------------------------------
|
|
# FastNoise2
|
|
# Modular node based noise generation library using SIMD, C++17 and templates
|
|
#------------------------------
|
|
if(NOT TARGET FastNoise)
|
|
set(BUILD_SHARED_LIBS OFF)
|
|
set(FASTNOISE2_NOISETOOL OFF)
|
|
add_subdirectory(FastNoise2)
|
|
endif()
|
|
|
|
#------------------------------
|
|
# nothings stb
|
|
# multi util library
|
|
#------------------------------
|
|
if(NOT TARGET nothings-stb)
|
|
project(nothings-stb VERSION 4.6 LANGUAGES C)
|
|
file(GLOB PROJECT_SOURCE nothings-stb/*.h nothings-stb/*.c)
|
|
add_library(nothings-stb STATIC ${PROJECT_SOURCE})
|
|
target_include_directories(nothings-stb PUBLIC nothings-stb/)
|
|
endif()
|
|
|
|
#------------------------------
|
|
# GZIP
|
|
# compress library
|
|
#------------------------------
|
|
if(NOT TARGET gzip)
|
|
project(gzip)
|
|
add_library(gzip INTERFACE)
|
|
target_include_directories(gzip INTERFACE gzip-hpp/include)
|
|
endif()
|
|
|
|
#--------------------------------
|
|
# nlohmann JSON
|
|
# JSON for Modern C++
|
|
#--------------------------------
|
|
if(NOT TARGET nlohmann_json)
|
|
set(JSON_BuildTests OFF)
|
|
set(JSON_Install OFF)
|
|
add_subdirectory(nlohmann_json)
|
|
set_property(TARGET nlohmann_json PROPERTY FOLDER "GameLib")
|
|
endif() |