# #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)