diff --git a/CMakeLists.txt b/CMakeLists.txt index 107dc0b23..3cf52e198 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -556,25 +556,26 @@ export( PACKAGE Calamares ) configure_file( CalamaresBuildTreeSettings.cmake.in "${PROJECT_BINARY_DIR}/CalamaresBuildTreeSettings.cmake" @ONLY ) # Create the CalamaresConfig.cmake and CalamaresConfigVersion files +configure_package_config_file( + "CalamaresConfig.cmake.in" + "${PROJECT_BINARY_DIR}/CalamaresConfig.cmake" + INSTALL_DESTINATION "${CMAKE_INSTALL_CMAKEDIR}" + PATH_VARS + CMAKE_INSTALL_INCLUDEDIR + CMAKE_INSTALL_LIBDIR + CMAKE_INSTALL_DATADIR +) write_basic_package_version_file( ${PROJECT_BINARY_DIR}/CalamaresConfigVersion.cmake VERSION ${PROJECT_VERSION} COMPATIBILITY SameMajorVersion ) -file( RELATIVE_PATH CONF_REL_INCLUDE_DIR "${CMAKE_INSTALL_FULL_CMAKEDIR}" "${CMAKE_INSTALL_FULL_INCLUDEDIR}" ) - - - -configure_file( CalamaresConfig.cmake.in "${PROJECT_BINARY_DIR}/CalamaresConfig.cmake" @ONLY ) -configure_file( CalamaresUse.cmake.in "${PROJECT_BINARY_DIR}/CalamaresUse.cmake" @ONLY ) - # Install the cmake files install( FILES "${PROJECT_BINARY_DIR}/CalamaresConfig.cmake" "${PROJECT_BINARY_DIR}/CalamaresConfigVersion.cmake" - "${PROJECT_BINARY_DIR}/CalamaresUse.cmake" "CMakeModules/CalamaresAddBrandingSubdirectory.cmake" "CMakeModules/CalamaresAddLibrary.cmake" "CMakeModules/CalamaresAddModuleSubdirectory.cmake" diff --git a/CalamaresConfig.cmake.in b/CalamaresConfig.cmake.in index 6d32410c6..9814bf8c1 100644 --- a/CalamaresConfig.cmake.in +++ b/CalamaresConfig.cmake.in @@ -1,32 +1,20 @@ # Config file for the Calamares package # -# It defines the following variables -# CALAMARES_INCLUDE_DIRS - include directories for Calamares -# CALAMARES_LIBRARIES - libraries to link against -# CALAMARES_USE_FILE - name of a convenience include -# CALAMARES_APPLICATION_NAME - human-readable application name -# -# Typical use is: -# -# find_package(Calamares REQUIRED) -# include("${CALAMARES_USE_FILE}") -# +# For legacy use it defines the following variables: +# - Calamares_INCLUDE_DIRS - include directories for Calamares +# - Calamares_LIB_DIRS - library directories +# - Calamares_LIBRARIES - libraries to link against (e.g. -lcalamares) -# Compute paths -get_filename_component(CALAMARES_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) -if(EXISTS "${CALAMARES_CMAKE_DIR}/CMakeCache.txt") - # In build tree - include("${CALAMARES_CMAKE_DIR}/CalamaresBuildTreeSettings.cmake") -else() - set(CALAMARES_INCLUDE_DIRS "${CALAMARES_CMAKE_DIR}/@CONF_REL_INCLUDE_DIR@/libcalamares") -endif() +@PACKAGE_INIT@ -# Our library dependencies (contains definitions for IMPORTED targets) -include("${CALAMARES_CMAKE_DIR}/CalamaresLibraryDepends.cmake") +include(${CMAKE_CURRENT_LIST_DIR}/CalamaresConfigVersion.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/CalamaresTargets.cmake) -# These are IMPORTED targets created by CalamaresLibraryDepends.cmake -set(CALAMARES_LIBRARIES calamares) +set(Calamares_LIB_DIRS "@PACKAGE_CMAKE_INSTALL_LIBDIR@") +set(Calamares_INCLUDE_DIRS "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@") +set(Calamares_LIBRARIES calamares) -# Convenience variables -set(CALAMARES_USE_FILE "${CALAMARES_CMAKE_DIR}/CalamaresUse.cmake") -set(CALAMARES_APPLICATION_NAME "Calamares") +include(${CMAKE_CURRENT_LIST_DIR}/CalamaresAddLibrary.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/CalamaresAddModuleSubdirectory.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/CalamaresAddPlugin.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/CalamaresAddBrandingSubdirectory.cmake) diff --git a/CalamaresUse.cmake.in b/CalamaresUse.cmake.in deleted file mode 100644 index 00f3c968d..000000000 --- a/CalamaresUse.cmake.in +++ /dev/null @@ -1,29 +0,0 @@ -# A setup-cmake-things-for-Calamares module. -# -# This module handles looking for dependencies and including -# all of the Calamares macro modules, so that you can focus -# on just using the macros to build Calamares modules. -# Typical use looks like this: -# -# ``` -# find_package( Calamares REQUIRED ) -# include( "${CALAMARES_CMAKE_DIR}/CalamaresUse.cmake" ) -# ``` -# -# The first CMake command finds Calamares (which will contain -# this file), then adds the found location to the search path, -# and then includes this file. After that, you can use -# Calamares module and plugin macros. - -if( NOT CALAMARES_CMAKE_DIR ) - message( FATAL_ERROR "Use find_package(Calamares) first." ) -endif() -set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CALAMARES_CMAKE_DIR} ) - -find_package( Qt5 @QT_VERSION@ CONFIG REQUIRED Core Widgets LinguistTools ) - -include( CalamaresAddLibrary ) -include( CalamaresAddModuleSubdirectory ) -include( CalamaresAddPlugin ) -include( CalamaresAddBrandingSubdirectory ) -