X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;ds=sidebyside;f=CMakeLists.txt;h=b7b244a9afac0792cad78b59c9c7e609ce857f6f;hb=48270029cd864eddccdb5cf41b92c9e0159ba10b;hp=2c690db5cfbbb700c63655999178a84a75a9b71d;hpb=9840eeabe80eecb9a3b91f34b7fb4bf3845cc702;p=irrlicht.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 2c690db..b7b244a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,24 +1,37 @@ cmake_minimum_required(VERSION 3.5) +# 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 9) + project(Irrlicht - VERSION 1.9.0 + VERSION 1.9.0.${IRRLICHTMT_REVISION} LANGUAGES CXX ) 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) @@ -27,15 +40,22 @@ endif() list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") add_subdirectory(source/Irrlicht) -# Installation of library and headers. -include(GNUInstallDirs) -install(TARGETS IrrlichtMt - EXPORT IrrlichtMt-export - DESTINATION "${CMAKE_INSTALL_LIBDIR}" +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" + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/irrlichtmt" ) # Installation of CMake target and configuration files. @@ -46,19 +66,19 @@ install(EXPORT IrrlichtMt-export ) include(CMakePackageConfigHelpers) -configure_package_config_file("${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in" - "${CMAKE_CURRENT_BINARY_DIR}/IrrlichtMtConfig.cmake" +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}/IrrlichtMtConfigVersion.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/cmake/IrrlichtMtConfigVersion.cmake" COMPATIBILITY AnyNewerVersion ) install(FILES - "${CMAKE_CURRENT_BINARY_DIR}/IrrlichtMtConfig.cmake" - "${CMAKE_CURRENT_BINARY_DIR}/IrrlichtMtConfigVersion.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/cmake/IrrlichtMtConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/cmake/IrrlichtMtConfigVersion.cmake" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/IrrlichtMt" )