cmake_minimum_required(VERSION 3.31) cmake_policy(SET CMP0048 NEW) cmake_policy(SET CMP0091 NEW) set(DJV_VERSION_MAJOR "3") set(DJV_VERSION_MINOR "2") set(DJV_VERSION_PATCH "0") set(DJV_VERSION ${DJV_VERSION_MAJOR}.${DJV_VERSION_MINOR}.${DJV_VERSION_PATCH}) add_definitions(-DDJV_VERSION_MAJOR=${DJV_VERSION_MAJOR}) add_definitions(-DDJV_VERSION_MINOR=${DJV_VERSION_MINOR}) add_definitions(-DDJV_VERSION_PATCH=${DJV_VERSION_PATCH}) add_definitions(-DDJV_VERSION="${DJV_VERSION}") project( DJV VERSION ${DJV_VERSION} DESCRIPTION "DJV is an open source application for playback and review of image sequences." HOMEPAGE_URL "https://github.com/darbyjohnston/DJV" LANGUAGES CXX) #------------------------------------------------------------------------------- # Internal configuration list(PREPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/Modules) if(NOT CMAKE_CXX_STANDARD) set(CMAKE_CXX_STANDARD 17) endif() if(CMAKE_BUILD_TYPE MATCHES "^Debug$") add_definitions(-DFTK_ASSERT) endif() if(MSVC) set(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreaded$<$:Debug>DLL) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP") endif() if(APPLE) set(CMAKE_FIND_FRAMEWORK LAST) endif() if(WIN32) elseif(APPLE) set(CMAKE_INSTALL_RPATH "@executable_path/../lib") # \bug Should this be set automatically? if(CMAKE_BUILD_TYPE MATCHES "^Debug$") set(CMAKE_BUILD_RPATH "@executable_path/../../../install-Debug/lib") elseif (CMAKE_BUILD_TYPE MATCHES "^RelWithDebInfo$") set(CMAKE_BUILD_RPATH "@executable_path/../../../install-RelWithDebInfo/lib") elseif (CMAKE_BUILD_TYPE MATCHES "^Release$") set(CMAKE_BUILD_RPATH "@executable_path/../../../install-Release/lib") endif() else() set(CMAKE_INSTALL_RPATH "$ORIGIN/../lib") endif() set_property(GLOBAL PROPERTY USE_FOLDERS ON) include_directories(${CMAKE_SOURCE_DIR}/lib) #------------------------------------------------------------------------------- # Dependencies find_package(tlRender REQUIRED) #------------------------------------------------------------------------------- # Sub-directories add_subdirectory(lib) add_subdirectory(tests) add_subdirectory(bin) add_subdirectory(etc/Legal) add_subdirectory(etc/SampleData) if(WIN32) add_subdirectory(etc/Windows) endif() #------------------------------------------------------------------------------- # Packaging if(CMAKE_BUILD_TYPE MATCHES "^Release$") include(djvPackage) include(CPack) include(InstallRequiredSystemLibraries) endif()