Chris@49: Chris@49: # Copyright (C) 2008-2013 NICTA (www.nicta.com.au) Chris@49: # Copyright (C) 2008-2013 Conrad Sanderson Chris@49: # Copyright (C) 2011 Clement Creusot Chris@49: # Chris@49: # This Source Code Form is subject to the terms of the Mozilla Public Chris@49: # License, v. 2.0. If a copy of the MPL was not distributed with this Chris@49: # file, You can obtain one at http://mozilla.org/MPL/2.0/. Chris@49: Chris@49: Chris@49: Chris@49: cmake_minimum_required(VERSION 2.6 FATAL_ERROR) Chris@49: Chris@49: set(ARMA_MAJOR 3) Chris@49: set(ARMA_MINOR 900) Chris@49: set(ARMA_PATCH 4) Chris@49: Chris@49: message(STATUS "Configuring Armadillo ${ARMA_MAJOR}.${ARMA_MINOR}.${ARMA_PATCH}") Chris@49: Chris@49: set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/build_aux/cmake/Modules/") Chris@49: Chris@49: include(CheckIncludeFileCXX) Chris@49: include(CheckLibraryExists) Chris@49: include(FindBoost) Chris@49: include(ARMA_CheckProto) Chris@49: include(ARMA_CheckMathProto) Chris@49: Chris@49: project(armadillo CXX) Chris@49: Chris@49: set(ARMA_USE_LAPACK false) Chris@49: set(ARMA_USE_BLAS false) Chris@49: set(ARMA_USE_ATLAS false) Chris@49: set(ARMA_USE_BOOST false) Chris@49: set(ARMA_USE_HDF5 false) Chris@49: set(ARMA_USE_WRAPPER true ) Chris@49: Chris@49: # NOTE: Chris@49: # Set ARMA_USE_WRAPPER to false if you're getting linking errors when compiling your programs, Chris@49: # or if you prefer to directly link with BLAS and/or LAPACK. Chris@49: # You will then need to link your programs with -lblas -llapack instead of -larmadillo Chris@49: # If you're using OpenBLAS, link your programs with -lopenblas -llapack instead of -larmadillo Chris@49: Chris@49: Chris@49: message(STATUS "CMAKE_SYSTEM_NAME = ${CMAKE_SYSTEM_NAME}") Chris@49: Chris@49: Chris@49: if(WIN32) Chris@49: message(STATUS "") Chris@49: message(STATUS "WARNING:") Chris@49: message(STATUS "Automatic installation is currently not available for this platform.") Chris@49: message(STATUS "Please use the manual installation, as described in the README.txt file.") Chris@49: message(STATUS "You can also use the 'include' folder directly, but you may want to edit") Chris@49: message(STATUS "'include/armadillo_bits/config.hpp' if you have LAPACK installed.") Chris@49: message(STATUS "") Chris@49: endif() Chris@49: Chris@49: Chris@49: Chris@49: # Chris@49: # Find LAPACK and BLAS libraries, or their optimised versions Chris@49: # Chris@49: Chris@49: if(APPLE) Chris@49: set(ARMA_OS macos) Chris@49: Chris@49: set(ARMA_USE_LAPACK true) Chris@49: set(ARMA_USE_BLAS true) Chris@49: Chris@49: # Under MacOS, the current version of ARMA_FindCLAPACK can get confused between Chris@49: # two incompatible versions of "clapack.h" (one provided by the system and one Chris@49: # provided by ATLAS). As such, use of ATLAS under MacOS is disabled for now. Chris@49: Chris@49: else() Chris@49: set(ARMA_OS unix) Chris@49: Chris@49: include(ARMA_FindMKL) Chris@49: include(ARMA_FindACMLMP) Chris@49: include(ARMA_FindACML) Chris@49: Chris@49: message(STATUS " MKL_FOUND = ${MKL_FOUND}") Chris@49: message(STATUS "ACMLMP_FOUND = ${ACMLMP_FOUND}") Chris@49: message(STATUS " ACML_FOUND = ${ACML_FOUND}") Chris@49: Chris@49: if(MKL_FOUND OR ACMLMP_FOUND OR ACML_FOUND) Chris@49: Chris@49: set(ARMA_USE_BLAS true) Chris@49: set(ARMA_USE_LAPACK true) Chris@49: Chris@49: message(STATUS "") Chris@49: message(STATUS "*** If the MKL or ACML libraries are installed in") Chris@49: message(STATUS "*** /opt or /usr/local, make sure the run-time linker can find them.") Chris@49: message(STATUS "*** On Linux systems this can be done by editing /etc/ld.so.conf") Chris@49: message(STATUS "*** or modifying the LD_LIBRARY_PATH environment variable.") Chris@49: message(STATUS "*** On systems with SELinux enabled (eg. Fedora, RHEL),") Chris@49: message(STATUS "*** you may need to change the SELinux type of all MKL/ACML libraries") Chris@49: message(STATUS "*** to fix permission problems that may occur during run-time.") Chris@49: message(STATUS "*** See README.txt for more information") Chris@49: Chris@49: else() Chris@49: Chris@49: include(ARMA_FindLAPACK) Chris@49: include(ARMA_FindOpenBLAS) Chris@49: include(ARMA_FindBLAS) Chris@49: include(ARMA_FindCLAPACK) Chris@49: include(ARMA_FindCBLAS) Chris@49: Chris@49: message(STATUS " LAPACK_FOUND = ${LAPACK_FOUND}") Chris@49: message(STATUS " BLAS_FOUND = ${BLAS_FOUND}") Chris@49: message(STATUS "OpenBLAS_FOUND = ${OpenBLAS_FOUND}") Chris@49: message(STATUS " CLAPACK_FOUND = ${CLAPACK_FOUND}") Chris@49: message(STATUS " CBLAS_FOUND = ${CBLAS_FOUND}") Chris@49: Chris@49: if(LAPACK_FOUND) Chris@49: set(ARMA_USE_LAPACK true) Chris@49: endif() Chris@49: Chris@49: if(BLAS_FOUND) Chris@49: set(ARMA_USE_BLAS true) Chris@49: endif() Chris@49: Chris@49: if(OpenBLAS_FOUND AND CLAPACK_FOUND AND CBLAS_FOUND) Chris@49: message(STATUS "") Chris@49: message(STATUS "*** WARNING: both OpenBLAS and ATLAS have been found; ATLAS will not be used") Chris@49: endif() Chris@49: Chris@49: if(OpenBLAS_FOUND) Chris@49: Chris@49: set(ARMA_USE_BLAS true) Chris@49: Chris@49: message(STATUS "") Chris@49: message(STATUS "*** If the OpenBLAS library is installed in") Chris@49: message(STATUS "*** /usr/local/lib or /usr/local/lib64") Chris@49: message(STATUS "*** make sure the run-time linker can find it.") Chris@49: message(STATUS "*** On Linux systems this can be done by editing /etc/ld.so.conf") Chris@49: message(STATUS "*** or modifying the LD_LIBRARY_PATH environment variable.") Chris@49: Chris@49: else() Chris@49: Chris@49: if(CLAPACK_FOUND AND CBLAS_FOUND) Chris@49: message(STATUS "CLAPACK_INCLUDE_DIR = ${CLAPACK_INCLUDE_DIR}") Chris@49: message(STATUS " CBLAS_INCLUDE_DIR = ${CBLAS_INCLUDE_DIR}") Chris@49: Chris@49: if(${CLAPACK_INCLUDE_DIR} STREQUAL ${CBLAS_INCLUDE_DIR}) Chris@49: set(ARMA_USE_ATLAS true) Chris@49: set(ARMA_ATLAS_INCLUDE_DIR ${CLAPACK_INCLUDE_DIR}) Chris@49: endif() Chris@49: endif() Chris@49: Chris@49: endif() Chris@49: Chris@49: endif() Chris@49: Chris@49: endif() Chris@49: Chris@49: Chris@49: if(MKL_FOUND OR ACMLMP_FOUND OR ACML_FOUND) Chris@49: Chris@49: if(MKL_FOUND) Chris@49: set(ARMA_LIBS ${ARMA_LIBS} ${MKL_LIBRARIES}) Chris@49: Chris@49: if(ACMLMP_FOUND OR ACML_FOUND) Chris@49: message(STATUS "*** Intel MKL as well as AMD ACML libraries were found.") Chris@49: message(STATUS "*** Using only the MKL library to avoid linking conflicts.") Chris@49: message(STATUS "*** If you wish to use ACML instead, please link manually with") Chris@49: message(STATUS "*** acml or acml_mp instead of the armadillo run-time component.") Chris@49: message(STATUS "*** Alternatively, remove MKL from your system and rerun") Chris@49: message(STATUS "*** Armadillo's configuration using ./configure") Chris@49: endif() Chris@49: Chris@49: else() Chris@49: Chris@49: if(ACMLMP_FOUND) Chris@49: set(ARMA_LIBS ${ARMA_LIBS} ${ACMLMP_LIBRARIES}) Chris@49: Chris@49: message(STATUS "*** Both single-core and multi-core ACML libraries were found.") Chris@49: message(STATUS "*** Using only the multi-core library to avoid linking conflicts.") Chris@49: else() Chris@49: if(ACML_FOUND) Chris@49: set(ARMA_LIBS ${ARMA_LIBS} ${ACML_LIBRARIES}) Chris@49: endif() Chris@49: endif() Chris@49: Chris@49: endif() Chris@49: Chris@49: else() Chris@49: Chris@49: if(ARMA_USE_BLAS STREQUAL true) Chris@49: if(OpenBLAS_FOUND) Chris@49: set(ARMA_LIBS ${ARMA_LIBS} ${OpenBLAS_LIBRARIES}) Chris@49: else() Chris@49: set(ARMA_LIBS ${ARMA_LIBS} ${BLAS_LIBRARIES}) Chris@49: endif() Chris@49: endif() Chris@49: Chris@49: if(ARMA_USE_LAPACK STREQUAL true) Chris@49: set(ARMA_LIBS ${ARMA_LIBS} ${LAPACK_LIBRARIES}) Chris@49: endif() Chris@49: Chris@49: if(ARMA_USE_ATLAS STREQUAL true) Chris@49: set(ARMA_LIBS ${ARMA_LIBS} ${CBLAS_LIBRARIES}) Chris@49: set(ARMA_LIBS ${ARMA_LIBS} ${CLAPACK_LIBRARIES}) Chris@49: endif() Chris@49: Chris@49: endif() Chris@49: Chris@49: Chris@49: if(APPLE) Chris@49: set(ARMA_LIBS ${ARMA_LIBS} "-framework Accelerate") # or "-framework accelerate" ? Chris@49: message(STATUS "MacOS X detected. Added '-framework Accelerate' to compiler flags") Chris@49: Chris@49: if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") Chris@49: add_definitions( Chris@49: -stdlib=libc++ Chris@49: ) Chris@49: message(STATUS "Clang compiler on MacOS X detected. Added '-stdlib=libc++' to compiler flags") Chris@49: endif() Chris@49: Chris@49: endif() Chris@49: Chris@49: Chris@49: # if(CMAKE_VERSION VERSION_GREATER "2.7") Chris@49: # find_package(HDF5) Chris@49: # message(STATUS "HDF5_FOUND = ${HDF5_FOUND}") Chris@49: # Chris@49: # if(HDF5_FOUND) Chris@49: # set(ARMA_USE_HDF5 true) Chris@49: # set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${HDF5_INCLUDE_DIRS}) Chris@49: # set(ARMA_LIBS ${ARMA_LIBS} ${HDF5_LIBRARIES}) Chris@49: # endif() Chris@49: # endif() Chris@49: Chris@49: Chris@49: message(STATUS "") Chris@49: message(STATUS "*** The run-time library component of Armadillo will be an alias for the following libraries:") Chris@49: message(STATUS "*** ARMA_LIBS = ${ARMA_LIBS}") Chris@49: message(STATUS "") Chris@49: Chris@49: find_package(Boost) Chris@49: Chris@49: if(Boost_FOUND) Chris@49: Chris@49: message(STATUS "Boost_MAJOR_VERSION = ${Boost_MAJOR_VERSION}") Chris@49: message(STATUS "Boost_MINOR_VERSION = ${Boost_MINOR_VERSION}") Chris@49: Chris@49: if(Boost_MAJOR_VERSION GREATER 0) Chris@49: if(Boost_MINOR_VERSION GREATER 33) Chris@49: set(ARMA_USE_BOOST true) Chris@49: message(STATUS "Boost_INCLUDE_DIR = ${Boost_INCLUDE_DIR}") Chris@49: endif() Chris@49: endif() Chris@49: Chris@49: endif() Chris@49: Chris@49: if(ARMA_USE_BOOST STREQUAL false) Chris@49: message(STATUS "Boost libraries either not found or their version is too low (1.34 or later is good).") Chris@49: message(STATUS "( It's possible that CMake didn't find the particular version of Boost you may have. )") Chris@49: message(STATUS "( If that's the case, please edit include/armadillo_bits/config.hpp manually. )") Chris@49: endif() Chris@49: Chris@49: Chris@49: # If Boost libraries were found, explicitly check if Boost's date_time library is also present. Chris@49: Chris@49: if(ARMA_USE_BOOST STREQUAL true) Chris@49: set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${Boost_INCLUDE_DIR}) Chris@49: CHECK_INCLUDE_FILE_CXX("boost/date_time/posix_time/posix_time.hpp" ARMA_USE_BOOST_DATE) Chris@49: endif() Chris@49: Chris@49: ARMA_CHECK_MATH_PROTO("isfinite" "std" "cmath" ARMA_HAVE_STD_ISFINITE) Chris@49: ARMA_CHECK_MATH_PROTO("isinf" "std" "cmath" ARMA_HAVE_STD_ISINF) Chris@49: ARMA_CHECK_MATH_PROTO("isnan" "std" "cmath" ARMA_HAVE_STD_ISNAN) Chris@49: ARMA_CHECK_MATH_PROTO("log1p" "" "cmath" ARMA_HAVE_LOG1P) Chris@49: Chris@49: ARMA_CHECK_PROTO("snprintf" "std" "cstdio" ARMA_HAVE_STD_SNPRINTF) Chris@49: ARMA_CHECK_PROTO("gettimeofday" "" "sys/time.h" ARMA_HAVE_GETTIMEOFDAY) Chris@49: Chris@49: Chris@49: message(STATUS "Generating 'include/armadillo_bits/config.hpp'") Chris@49: configure_file(include/armadillo_bits/config.hpp.cmake include/armadillo_bits/config.hpp) Chris@49: Chris@49: message(STATUS "Generating 'examples/Makefile'") Chris@49: configure_file(examples/Makefile.cmake examples/Makefile) Chris@49: Chris@49: Chris@49: if(ARMA_USE_BOOST STREQUAL true) Chris@49: include_directories(include ${Boost_INCLUDE_DIR}) Chris@49: else() Chris@49: include_directories(include) Chris@49: endif() Chris@49: Chris@49: Chris@49: ## For any library that is not in a default location, Chris@49: ## embed its path into the Armadillo runtime library. Chris@49: ## Examples of default locations are "/lib", "/usr/lib", Chris@49: ## or as specified in "/etc/ld.so.conf". Chris@49: ## Chris@49: ## Path embedding is not recommended unless you know Chris@49: ## what you're doing. It might be better to add the Chris@49: ## path to the "/etc/ld.so.conf" file and then run "ldconfig". Chris@49: ## Chris@49: #set(CMAKE_SKIP_BUILD_RPATH FALSE) Chris@49: #set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) Chris@49: #set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) Chris@49: Chris@49: Chris@49: # work around a silly limitation in Mac OS X Chris@49: if(APPLE) Chris@49: if(${ARMA_MINOR} GREATER 99) Chris@49: math(EXPR ARMA_MINOR_ALT "${ARMA_MINOR} / 10") Chris@49: else() Chris@49: set(ARMA_MINOR_ALT ${ARMA_MINOR}) Chris@49: endif() Chris@49: else() Chris@49: set(ARMA_MINOR_ALT ${ARMA_MINOR}) Chris@49: endif() Chris@49: Chris@49: Chris@49: # necessary when linking with Intel MKL on Linux systems Chris@49: if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") Chris@49: set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-as-needed") Chris@49: message(STATUS "CMAKE_SHARED_LINKER_FLAGS = ${CMAKE_SHARED_LINKER_FLAGS}") Chris@49: endif() Chris@49: Chris@49: add_library( armadillo SHARED src/wrap_libs ) Chris@49: target_link_libraries( armadillo ${ARMA_LIBS} ) Chris@49: set_target_properties(armadillo PROPERTIES VERSION ${ARMA_MAJOR}.${ARMA_MINOR_ALT}.${ARMA_PATCH} SOVERSION ${ARMA_MAJOR}) Chris@49: Chris@49: Chris@49: ################################################################################ Chris@49: # INSTALL CONFIGURATION Chris@49: Chris@49: Chris@49: # As Red Hat Enterprise Linux (and related systems such as Fedora) Chris@49: # does not search /usr/local/lib by default, we need to place the Chris@49: # library in either /usr/lib or /usr/lib64 Chris@49: Chris@49: if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) Chris@49: message(STATUS "*** CMAKE_INSTALL_PREFIX was initalised by cmake to the default value of ${CMAKE_INSTALL_PREFIX}") Chris@49: message(STATUS "*** CMAKE_INSTALL_PREFIX changed to /usr") Chris@49: unset(CMAKE_INSTALL_PREFIX) Chris@49: set(CMAKE_INSTALL_PREFIX "/usr") Chris@49: #set(CMAKE_INSTALL_PREFIX "/usr" CACHE PATH "install prefix" FORCE) Chris@49: endif() Chris@49: Chris@49: # Allow for the "lib" directory to be specified on the command line Chris@49: if(NOT INSTALL_LIB_DIR) Chris@49: set(INSTALL_LIB_DIR "lib") Chris@49: if(UNIX AND NOT APPLE) # I don't know how Mac OS handles 64 bit systems Chris@49: if(CMAKE_SIZEOF_VOID_P EQUAL 8) Chris@49: message(STATUS "*** Detected 64 bit system") Chris@49: # use "lib64" only on systems that have it (eg. Fedora, Red Hat). Chris@49: # if installing in /usr/local/, the use of lib64 might be unreliable on systems which have /usr/local/lib64 but don't use it Chris@49: if(IS_DIRECTORY "${CMAKE_INSTALL_PREFIX}/lib64") Chris@49: unset(INSTALL_LIB_DIR) Chris@49: set(INSTALL_LIB_DIR "lib64") Chris@49: message(STATUS "*** ${CMAKE_INSTALL_PREFIX}/lib64/ exists, so destination directory for the run-time library changed to ${CMAKE_INSTALL_PREFIX}/lib64/") Chris@49: message(STATUS "*** Your system and/or compiler must search ${CMAKE_INSTALL_PREFIX}/lib64/ during linking") Chris@49: endif() Chris@49: endif() Chris@49: endif() Chris@49: endif() Chris@49: Chris@49: # Allow for the "include" directory to be specified on the command line Chris@49: Chris@49: if(NOT INSTALL_INCLUDE_DIR) Chris@49: set(INSTALL_INCLUDE_DIR "include") Chris@49: endif() Chris@49: Chris@49: # We use data dir to store files shared with other programs Chris@49: # like the ArmadilloConfig.cmake file. Chris@49: if(NOT INSTALL_DATA_DIR) Chris@49: set(INSTALL_DATA_DIR "share") Chris@49: endif() Chris@49: Chris@49: # Make relative paths absolute so we can write them in Config.cmake files Chris@49: foreach(p LIB INCLUDE DATA) Chris@49: set(var INSTALL_${p}_DIR) Chris@49: if(NOT IS_ABSOLUTE "${${var}}") Chris@49: set(${var} "${CMAKE_INSTALL_PREFIX}/${${var}}") Chris@49: endif() Chris@49: endforeach() Chris@49: Chris@49: message(STATUS "CMAKE_INSTALL_PREFIX = ${CMAKE_INSTALL_PREFIX}") Chris@49: message(STATUS "INSTALL_LIB_DIR = ${INSTALL_LIB_DIR}" ) Chris@49: message(STATUS "INSTALL_INCLUDE_DIR = ${INSTALL_INCLUDE_DIR}" ) Chris@49: message(STATUS "INSTALL_DATA_DIR = ${INSTALL_DATA_DIR}" ) Chris@49: Chris@49: Chris@49: # Note that the trailing / character in "include/" is critical Chris@49: Chris@49: install(DIRECTORY include/ DESTINATION ${INSTALL_INCLUDE_DIR} Chris@49: PATTERN ".svn" EXCLUDE Chris@49: PATTERN "*.cmake" EXCLUDE Chris@49: PATTERN "*~" EXCLUDE Chris@49: PATTERN "*orig" EXCLUDE Chris@49: ) Chris@49: Chris@49: install(FILES ${PROJECT_BINARY_DIR}/include/armadillo_bits/config.hpp Chris@49: DESTINATION ${INSTALL_INCLUDE_DIR}/armadillo_bits Chris@49: ) Chris@49: Chris@49: install(TARGETS armadillo Chris@49: DESTINATION ${INSTALL_LIB_DIR} Chris@49: EXPORT ArmadilloLibraryDepends) Chris@49: Chris@49: # Export the package for use from the build-tree Chris@49: # (this registers the build-tree with a global CMake-registry) Chris@49: if(CMAKE_VERSION VERSION_GREATER "2.7") Chris@49: export(PACKAGE armadillo) Chris@49: endif() Chris@49: Chris@49: ## LOCAL FILES Chris@49: # Create ArmadilloConfig.cmake file for the use from the build tree Chris@49: set(ARMADILLO_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}" "${PROJECT_BINARY_DIR}") Chris@49: set(ARMADILLO_LIB_DIR "${PROJECT_BINARY_DIR}") Chris@49: set(ARMADILLO_CMAKE_DIR "${PROJECT_BINARY_DIR}") Chris@49: Chris@49: Chris@49: message(STATUS "Generating '${PROJECT_BINARY_DIR}/ArmadilloConfig.cmake'") Chris@49: # copy/change config and configVersion file (modify only the @xyz@ variables) Chris@49: configure_file(build_aux/cmake/InstallFiles/ArmadilloConfig.cmake.in Chris@49: "${PROJECT_BINARY_DIR}/ArmadilloConfig.cmake" @ONLY) Chris@49: Chris@49: message(STATUS "Generating '${PROJECT_BINARY_DIR}/ArmadilloConfigVersion.cmake'") Chris@49: configure_file(build_aux/cmake/InstallFiles/ArmadilloConfigVersion.cmake.in Chris@49: "${PROJECT_BINARY_DIR}/ArmadilloConfigVersion.cmake" @ONLY) Chris@49: Chris@49: Chris@49: # Install the export set for use with the install-tree Chris@49: install(EXPORT ArmadilloLibraryDepends DESTINATION Chris@49: "${INSTALL_DATA_DIR}/Armadillo/CMake" Chris@49: COMPONENT dev) Chris@49: Chris@49: Chris@49: ## GLOBAL INSTALL FILES Chris@49: # Create ArmadilloConfig.cmake file for the use from the install tree Chris@49: # and install it Chris@49: set(ARMADILLO_INCLUDE_DIRS "${INSTALL_INCLUDE_DIR}") Chris@49: set(ARMADILLO_LIB_DIR "${INSTALL_LIB_DIR}") Chris@49: set(ARMADILLO_CMAKE_DIR "${INSTALL_DATA_DIR}/Armadillo/CMake") Chris@49: Chris@49: Chris@49: message(STATUS "Generating '${PROJECT_BINARY_DIR}/InstallFiles/ArmadilloConfig.cmake'") Chris@49: # copy/change config and configVersion file (modify only the @xyz@ variables) Chris@49: configure_file(build_aux/cmake/InstallFiles/ArmadilloConfig.cmake.in Chris@49: "${PROJECT_BINARY_DIR}/InstallFiles/ArmadilloConfig.cmake" @ONLY) Chris@49: Chris@49: message(STATUS "Generating '${PROJECT_BINARY_DIR}/InstallFiles/ArmadilloConfigVersion.cmake'") Chris@49: configure_file(build_aux/cmake/InstallFiles/ArmadilloConfigVersion.cmake.in Chris@49: "${PROJECT_BINARY_DIR}/InstallFiles/ArmadilloConfigVersion.cmake" @ONLY) Chris@49: Chris@49: # Install files to be found by cmake users with find_package() Chris@49: install(FILES Chris@49: "${PROJECT_BINARY_DIR}/InstallFiles/ArmadilloConfig.cmake" Chris@49: "${PROJECT_BINARY_DIR}/InstallFiles/ArmadilloConfigVersion.cmake" Chris@49: DESTINATION "${ARMADILLO_CMAKE_DIR}" COMPONENT dev)