5bf9a32437
Update 3rdparty/osgXR to version 0.3.9, which gets us better handling of quirks and window closure, and the ability to create quad composition layers which will be particularly useful for the loading screen when flightgear isn't so good at timely frame updates.
80 lines
2.5 KiB
CMake
80 lines
2.5 KiB
CMake
# Top level CMakeLists.txt
|
|
cmake_minimum_required(VERSION 3.11)
|
|
|
|
set(osgXR_MAJOR_VERSION 0)
|
|
set(osgXR_MINOR_VERSION 3)
|
|
set(osgXR_PATCH_VERSION 9)
|
|
set(osgXR_SOVERSION 6)
|
|
|
|
set(osgXR_VERSION "${osgXR_MAJOR_VERSION}.${osgXR_MINOR_VERSION}.${osgXR_PATCH_VERSION}")
|
|
|
|
project(osgXR
|
|
VERSION ${osgXR_VERSION}
|
|
DESCRIPTION "OpenXR integration for OpenSceneGraph applications"
|
|
)
|
|
|
|
if(CMAKE_PROJECT_NAME STREQUAL osgXR)
|
|
# Normal top level project build, install package components
|
|
|
|
include(CMakePackageConfigHelpers)
|
|
include(GNUInstallDirs)
|
|
|
|
# Build options
|
|
option(BUILD_SHARED_LIBS "Whether to build as a shared library" ON)
|
|
option(BUILD_OSGXR_EXAMPLES "Enable to build osgXR examples" OFF)
|
|
option(OSGXR_WARNINGS "Enable compiler warnings for osgXR" OFF)
|
|
|
|
# Source files in src/
|
|
add_subdirectory(src)
|
|
|
|
if(BUILD_OSGXR_EXAMPLES)
|
|
add_subdirectory(examples)
|
|
endif()
|
|
|
|
set(INSTALL_INCDIR "${CMAKE_INSTALL_INCLUDEDIR}")
|
|
|
|
# Preprocess pkgconfig file
|
|
configure_file(osgXR.pc.in osgXR.pc @ONLY)
|
|
|
|
# Preprocess package config
|
|
configure_package_config_file(Config.cmake.in osgXRConfig.cmake
|
|
INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/osgXR"
|
|
PATH_VARS INSTALL_INCDIR
|
|
)
|
|
# Build package version file
|
|
write_basic_package_version_file(osgXRConfigVersion.cmake
|
|
VERSION "${PROJECT_VERSION}"
|
|
COMPATIBILITY SameMinorVersion
|
|
)
|
|
|
|
# Install library and headers
|
|
install(TARGETS osgXR
|
|
EXPORT osgXRTargets
|
|
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
|
PUBLIC_HEADER DESTINATION "${INSTALL_INCDIR}/osgXR"
|
|
INCLUDES DESTINATION "${INSTALL_INCDIR}"
|
|
)
|
|
# Install pkgconfig file
|
|
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/osgXR.pc"
|
|
DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/pkgconfig"
|
|
)
|
|
# Install export targets
|
|
install(EXPORT osgXRTargets
|
|
FILE osgXRTargets.cmake
|
|
NAMESPACE osgXR::
|
|
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/osgXR"
|
|
)
|
|
# Install package config and version files
|
|
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/osgXRConfig.cmake"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/osgXRConfigVersion.cmake"
|
|
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/osgXR"
|
|
)
|
|
|
|
else()
|
|
# Subproject build
|
|
|
|
# Just build src/ as a static library
|
|
set(osgXR_LIBRARY_TYPE STATIC)
|
|
add_subdirectory(src)
|
|
|
|
endif()
|