X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=CMakeLists.txt;h=c289434f1fb258a6b6f4836c8bf0fba03e36b351;hb=15e3f15b48073f4085f81b9a063b709c7872eab7;hp=eaa5716f7b7445cf6e4b1bddc623402a5fb5ff12;hpb=5bdcc7eb4f6c55cc7f5ed0f0b3163d5bb986fb86;p=irrlicht.git diff --git a/CMakeLists.txt b/CMakeLists.txt index eaa5716..c289434 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 11) + 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,13 +40,20 @@ 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" ) @@ -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" )