Files
davinci2/CMakeLists.txt
2025-06-11 22:45:11 +08:00

94 lines
2.2 KiB
CMake

#
#Davinci (a software render)
#
cmake_minimum_required (VERSION 3.15)
project(davinci)
########
#system
########
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(DV_SYS_LINUX TRUE)
elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
set(DV_SYS_WINDOWS TRUE)
elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
set(DV_SYS_MACOS TRUE)
else()
message(FATAL_ERROR "Unknown target system \"${CMAKE_SYSTEM_NAME}\".")
endif()
########
#set compile flag
########
set(CMAKE_CXX_STANDARD 17)
########
#set davinci source files path
########
set(DV_CORE_INCLUDE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/source/core/include)
set(DV_UTILS_INCLUDE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/source/utils/include)
########
#check include file
########
include(CheckIncludeFile)
check_include_file(unistd.h DV_HAVE_UNISTD_H)
check_include_file(inttypes.h DV_HAVE_INTTYPES_H)
check_include_file(limits.h DV_HAVE_LIMITS_H)
########
#make configure files
########
set(DV_AUTO_INCLUDE_PATH ${CMAKE_CURRENT_BINARY_DIR}/source)
set(DV_AUTO_CONFIG_FILE ${DV_AUTO_INCLUDE_PATH}/dv_config.h)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/source/dv_config.h.in ${DV_AUTO_CONFIG_FILE})
########
#Thirdparty libraries
########
# rapidjson
set(RapidJSON_DIR $ENV{LIBRARIES_SDK_ROOT}/rapidjson/cmake)
find_package(RapidJSON REQUIRED)
#zlib
set(ZLIB_USE_STATIC_LIBS True)
set(ZLIB_ROOT $ENV{LIBRARIES_SDK_ROOT}/zlib)
find_package(ZLIB REQUIRED)
#libpng
set(PNG_DIR $ENV{LIBRARIES_SDK_ROOT}/libpng/lib/cmake/PNG)
find_package(PNG CONFIG REQUIRED)
#glm
set(glm_DIR $ENV{LIBRARIES_SDK_ROOT}/glm/share/glm)
find_package(glm CONFIG REQUIRED)
#tinygltf
set(TinyGLTF_DIR $ENV{LIBRARIES_SDK_ROOT}/tinygltf/lib/cmake/tinygltf)
find_package(TinyGLTF CONFIG REQUIRED)
set(ImGui_DIR "$ENV{LIBRARIES_SDK_ROOT}/imgui/lib/cmake/imgui")
find_package(ImGui REQUIRED)
#set(glfw3_DIR $ENV{LIBRARIES_SDK_ROOT}/glfw/lib/cmake/glfw3)
#find_package(glfw3 CONFIG REQUIRED)
set(SDL3_DIR "$ENV{LIBRARIES_SDK_ROOT}/SDL/cmake")
find_package(SDL3 CONFIG REQUIRED)
find_package(OpenGL REQUIRED)
########
#sub dictionary
########
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
add_subdirectory(source)
########
#test dictionary
########
add_subdirectory(test)