94 lines
2.2 KiB
CMake
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)
|