X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=CMakeLists.txt;h=c289434f1fb258a6b6f4836c8bf0fba03e36b351;hb=5a1565072abeecf9fc5a3ffc450d5ab8ff660021;hp=8a9b651e860b9486ba4c5d2e0767e245929e75ca;hpb=10a188e967da36b3e50e1b87806a231d0be7a097;p=irrlicht.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 8a9b651..c289434 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,26 +1,37 @@ cmake_minimum_required(VERSION 3.5) -project(Irrlicht) +# Set policies up to 3.9 since we want to enable the IPO option +if(${CMAKE_VERSION} VERSION_LESS 3.9) + cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}) +else() + cmake_policy(VERSION 3.9) +endif() + +set(IRRLICHTMT_REVISION 11) -set(IRRLICHT_VERSION_MAJOR 1) -set(IRRLICHT_VERSION_MINOR 9) -set(IRRLICHT_VERSION_RELEASE 0) +project(Irrlicht + VERSION 1.9.0.${IRRLICHTMT_REVISION} + LANGUAGES CXX +) -set(VERSION "${IRRLICHT_VERSION_MAJOR}.${IRRLICHT_VERSION_MINOR}.${IRRLICHT_VERSION_RELEASE}") -message(STATUS "*** Building Irrlicht ${VERSION} ***") +message(STATUS "*** Building IrrlichtMt ${PROJECT_VERSION} ***") + +include(GNUInstallDirs) if(ANDROID) - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/Android) + set(sysname Android) elseif(APPLE) - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/OSX) + set(sysname OSX) +elseif(MSVC) + set(sysname Win32-VisualStudio) elseif(WIN32) - # good enough - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/Win32-gcc) + set(sysname Win32-gcc) else() - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/Linux) + set(sysname Linux) endif() +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib/${sysname}) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin/${sysname}) if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type: Debug or Release" FORCE) @@ -28,3 +39,46 @@ endif() list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") add_subdirectory(source/Irrlicht) + +option(BUILD_EXAMPLES "Build example applications" FALSE) +if(BUILD_EXAMPLES) + add_subdirectory(examples) +endif() + +# Export a file that describes the targets that IrrlichtMt creates. +# The file is placed in the location FILE points to, where CMake can easily +# locate it by pointing CMAKE_PREFIX_PATH to this project root. +export(EXPORT IrrlichtMt-export + FILE "${CMAKE_CURRENT_BINARY_DIR}/cmake/IrrlichtMtTargets.cmake" + NAMESPACE IrrlichtMt:: +) + +# Installation of headers. +install(DIRECTORY "${PROJECT_SOURCE_DIR}/include/" + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/irrlichtmt" +) + +# Installation of CMake target and configuration files. +install(EXPORT IrrlichtMt-export + FILE IrrlichtMtTargets.cmake + NAMESPACE IrrlichtMt:: + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/IrrlichtMt" +) + +include(CMakePackageConfigHelpers) +configure_package_config_file("${PROJECT_SOURCE_DIR}/Config.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/cmake/IrrlichtMtConfig.cmake" + INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/IrrlichtMt" + NO_SET_AND_CHECK_MACRO + NO_CHECK_REQUIRED_COMPONENTS_MACRO +) +write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/cmake/IrrlichtMtConfigVersion.cmake" + COMPATIBILITY AnyNewerVersion +) + +install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/cmake/IrrlichtMtConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/cmake/IrrlichtMtConfigVersion.cmake" + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/IrrlichtMt" +)