1
0
Fork 0
flightgear/3rdparty/osgXR/CMakeLists.txt
James Hogan 6c812a3dfd
osgXR: Update to 0.5.0
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.
2022-08-21 17:54:54 +01:00

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