diff --git a/CMakeLists.txt b/CMakeLists.txt index 12b401e..4d43b7a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,7 +44,7 @@ set(USE_YAML SYSTEM CACHE STRING "version of yaml to use, SYSTEM and EMBEDDE ## Options handling if("${USE_YAML}" STREQUAL EMBEDDED) - set(YAML_PATH "${PARACONF_DISTRIB_SOURCE_DIR}/vendor/libyaml-0.2.1.tar") + set(YAML_PATH "${PARACONF_DISTRIB_SOURCE_DIR}/vendor/libyaml-0.2.2.tar") else() set(YAML_PATH "${USE_YAML}") endif() diff --git a/paraconf/CMakeLists.txt b/paraconf/CMakeLists.txt index 0815c5b..4a93644 100644 --- a/paraconf/CMakeLists.txt +++ b/paraconf/CMakeLists.txt @@ -48,6 +48,7 @@ endif() include(GenerateExportHeader) include(CMakePackageConfigHelpers) include(GNUInstallDirs) +set(INSTALL_CMAKEDIR "${CMAKE_INSTALL_DATADIR}/paraconf/cmake") # not provided by GNUInstallDirs # Dependencies @@ -91,11 +92,12 @@ set_property(TARGET paraconf PROPERTY VERSION ${paraconf_VERSION}) set_property(TARGET paraconf PROPERTY SOVERSION ${paraconf_VERSION_MAJOR}) set_property(TARGET paraconf PROPERTY paraconf_MAJOR_VERSION ${paraconf_VERSION_MAJOR}) set_property(TARGET paraconf APPEND PROPERTY COMPATIBLE_INTERFACE_STRING paraconf_MAJOR_VERSION) -install(TARGETS paraconf EXPORT PC_export +install(TARGETS paraconf EXPORT paraconf_export ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" ) +install(EXPORT paraconf_export NAMESPACE "paraconf::" DESTINATION "${INSTALL_CMAKEDIR}" FILE paraconf.cmake) install(FILES include/paraconf.h "${paraconf_BINARY_DIR}/paraconf_export.h" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" ) @@ -120,11 +122,12 @@ if("${ENABLE_FORTRAN}") set(COMPILER_FVER "${CMAKE_Fortran_COMPILER_VERSION}") endif() set(INSTALL_FINCLUDEDIR "${CMAKE_INSTALL_LIBDIR}/${COMPILER_FID}/${CMAKE_Fortran_LIBRARY_ARCHITECTURE}/${COMPILER_FVER}/finclude" CACHE PATH "Fortran module files (LIBDIR/${COMPILER_FID}/${CMAKE_Fortran_LIBRARY_ARCHITECTURE}/${COMPILER_FVER}/finclude)") - install(TARGETS paraconf_f90 EXPORT PC_export + install(TARGETS paraconf_f90 EXPORT paraconf_f90_export ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" INCLUDES DESTINATION "${INSTALL_FINCLUDEDIR}" ) + install(EXPORT paraconf_f90_export NAMESPACE "paraconf::" DESTINATION "${INSTALL_CMAKEDIR}" FILE paraconf_f90.cmake) install(DIRECTORY "${paraconf_BINARY_DIR}/fortran_inc/" DESTINATION "${INSTALL_FINCLUDEDIR}" ) @@ -144,12 +147,10 @@ endif() # Installable config -set(INSTALL_CMAKEDIR "${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}-${paraconf_VERSION}/cmake") write_basic_package_version_file("${paraconf_BINARY_DIR}/paraconf/paraconfConfigVersion.cmake" VERSION ${paraconf_VERSION} COMPATIBILITY AnyNewerVersion ) -install(EXPORT PC_export NAMESPACE "paraconf::" DESTINATION "${INSTALL_CMAKEDIR}" FILE paraconf.cmake) install(FILES cmake/paraconfConfig.cmake "${paraconf_BINARY_DIR}/paraconf/paraconfConfigVersion.cmake" diff --git a/paraconf/cmake/paraconfConfig.cmake b/paraconf/cmake/paraconfConfig.cmake index 68421f6..2c22b63 100644 --- a/paraconf/cmake/paraconfConfig.cmake +++ b/paraconf/cmake/paraconfConfig.cmake @@ -27,4 +27,30 @@ list(INSERT CMAKE_MODULE_PATH 0 "${CMAKE_CURRENT_LIST_DIR}") find_dependency(Threads) find_dependency(yaml) +# by default, if no component is specified, look for all +if("xx" STREQUAL "x${paraconf_FIND_COMPONENTS}x") + set(paraconf_FIND_COMPONENTS C f90) +endif() + +# we always look for C +list(REMOVE_ITEM paraconf_FIND_COMPONENTS C) include("${CMAKE_CURRENT_LIST_DIR}/paraconf.cmake") +if(NOT TARGET paraconf::paraconf) + set(paraconf_FOUND "FALSE") + if(NOT "${paraconf_FIND_QUIETLY}") + message("paraconf: component \"C\" not found") + endif() +endif() + +# currently, only f90 is supported +foreach(_paraconf_ONE_COMPONENT ${paraconf_FIND_COMPONENTS}) + include("${CMAKE_CURRENT_LIST_DIR}/paraconf_${_paraconf_ONE_COMPONENT}.cmake" OPTIONAL) + if(NOT TARGET "paraconf::paraconf_${_paraconf_ONE_COMPONENT}") + if("${paraconf_FIND_REQUIRED_${_paraconf_ONE_COMPONENT}}") + set(paraconf_FOUND "FALSE") + endif() + if(NOT "${paraconf_FIND_QUIETLY}") + message("paraconf: component \"${_paraconf_ONE_COMPONENT}\" not found") + endif() + endif() +endforeach() diff --git a/vendor/libyaml-0.2.1.tar b/vendor/libyaml-0.2.2.tar similarity index 96% rename from vendor/libyaml-0.2.1.tar rename to vendor/libyaml-0.2.2.tar index a82307b..fc03016 100644 Binary files a/vendor/libyaml-0.2.1.tar and b/vendor/libyaml-0.2.2.tar differ