Update 3rdparty/osgXR to version 0.5.0, which primarily gets us build fixes for Windows. Unfortunately one of them requires an API breakage to avoid some apparent preprocessor namespace pollution on Windows, which will require minor source modification in FlightGear (left to the next commit). The ABI is unchanged so binary compatibility is unaffected.
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 5)
|
|
set(osgXR_PATCH_VERSION 0)
|
|
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()
|