diff --git a/CMakeLists.txt b/CMakeLists.txt index 024d1709874d818444594b5353a9edb0d229f10c..663815c1817b5a294c2decbf6eef2d8aa06df366 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,7 +8,8 @@ cmake_minimum_required(VERSION 3.18) project( mtime VERSION 1.2.2 - LANGUAGES Fortran C) + LANGUAGES Fortran C +) option(BUILD_TESTING "Build tests" ON) option(BUILD_EXAMPLES "Build examples" ON) @@ -23,8 +24,9 @@ if(CMAKE_Fortran_COMPILER_ID STREQUAL "GNU") add_compile_options($<$<COMPILE_LANGUAGE:Fortran>:-ffree-line-length-none>) endif() -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in - ${CMAKE_CURRENT_BINARY_DIR}/config.h) +configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h +) include(GNUInstallDirs) @@ -44,24 +46,32 @@ if(BUILD_DOCUMENTATION) add_subdirectory(doc) endif() -export(EXPORT "${PROJECT_NAME}-targets" - FILE "${PROJECT_BINARY_DIR}/${PROJECT_NAME}-targets.cmake") +export( + EXPORT "${PROJECT_NAME}-targets" + FILE "${PROJECT_BINARY_DIR}/${PROJECT_NAME}-targets.cmake" +) include(CMakePackageConfigHelpers) configure_package_config_file( "${PROJECT_SOURCE_DIR}/cmake/config.cmake.in" "${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config.cmake" INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake" - NO_SET_AND_CHECK_MACRO NO_CHECK_REQUIRED_COMPONENTS_MACRO) + NO_SET_AND_CHECK_MACRO NO_CHECK_REQUIRED_COMPONENTS_MACRO +) write_basic_package_version_file( "${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake" VERSION "${${PROJECT_NAME}_VERSION_MAJOR}.${${PROJECT_NAME}_VERSION_MINOR}" - COMPATIBILITY AnyNewerVersion) - -install(EXPORT "${PROJECT_NAME}-targets" - DESTINATION "${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/cmake") - -install(FILES "${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config.cmake" - "${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake" - DESTINATION "${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/cmake") + COMPATIBILITY AnyNewerVersion +) + +install( + EXPORT "${PROJECT_NAME}-targets" + DESTINATION "${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/cmake" +) + +install( + FILES "${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config.cmake" + "${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake" + DESTINATION "${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/cmake" +) diff --git a/cmake/config.cmake.in b/cmake/config.cmake.in index 01ef3506c6a2cb912eda7c6170db3ffb66ceecc3..f15441eab2902dca31d2832479ecd0a823ef6500 100644 --- a/cmake/config.cmake.in +++ b/cmake/config.cmake.in @@ -8,4 +8,6 @@ include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-targets.cmake") include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(@PROJECT_NAME@ REQUIRED_VARS @PROJECT_NAME@_DIR) +find_package_handle_standard_args( + @PROJECT_NAME@ REQUIRED_VARS @PROJECT_NAME@_DIR +) diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index 0aaa15e2745a69bcd4520eb2acb72634dfecf724..ce4098e1ef81a66a070b9ceb7ac9708adde4bb60 100644 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -12,7 +12,8 @@ set(DX_DOCDIR "doxygen-doc") set(top_srcdir "${PROJECT_SOURCE_DIR}") set(srcdir "${CMAKE_CURRENT_SOURCE_DIR}") -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in - ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile) +configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile +) add_custom_target(doc COMMAND doxygen Doxyfile) diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index be25e6c1823ed49e2413861c6096b6def3e5a23c..e3336f5fc98b5792ca678200c34f9a6bdd47a060 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -13,17 +13,19 @@ mtime_add_example(duration duration.f90 DEPENDS mo_kind.f90) mtime_add_example(example example.f90) -add_library( - mtime_event_manager - mo_event_manager.f90) +add_library(mtime_event_manager mo_event_manager.f90) target_link_libraries(mtime_event_manager PUBLIC mtime::mtime) -file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/iconatm.nml" - DESTINATION "${CMAKE_CURRENT_BINARY_DIR}") +file( + COPY "${CMAKE_CURRENT_SOURCE_DIR}/iconatm.nml" + DESTINATION "${CMAKE_CURRENT_BINARY_DIR}" +) mtime_add_example(iconatm iconatm.f90 LIBRARIES mtime_event_manager) -file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/iconoce.nml" - DESTINATION "${CMAKE_CURRENT_BINARY_DIR}") +file( + COPY "${CMAKE_CURRENT_SOURCE_DIR}/iconoce.nml" + DESTINATION "${CMAKE_CURRENT_BINARY_DIR}" +) mtime_add_example(iconoce iconoce.f90 LIBRARIES mtime_event_manager) mtime_add_example(model_integration model_integration.c) diff --git a/examples/example_helper.cmake b/examples/example_helper.cmake index 77568ef465801b5bd83b33b8d70f6a5079e26ae3..0e763eb2196fe666bf8cab21b8d0233d902a765e 100644 --- a/examples/example_helper.cmake +++ b/examples/example_helper.cmake @@ -5,13 +5,7 @@ function(mtime_add_example test_name file_name) - cmake_parse_arguments( - PARSE_ARGV - 2 - ARG - "" - "" - "LIBRARIES;DEPENDS") + cmake_parse_arguments(PARSE_ARGV 2 ARG "" "" "LIBRARIES;DEPENDS") add_executable("${test_name}" ${file_name} ${ARG_DEPENDS}) target_link_libraries("${test_name}" PRIVATE mtime::mtime ${ARG_LIBRARIES}) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 42e3a931e7e890b1cf6f66faca238d74012186ae..bff707f6a9029347145435117cc149d187214556 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -29,10 +29,10 @@ add_library( mtime_timedelta.c mtime_utilities.c orbit.c - vsop87.c) + vsop87.c +) -add_library( - ${PROJECT_NAME}::mtime ALIAS mtime) +add_library(${PROJECT_NAME}::mtime ALIAS mtime) set(Fortran_MODULE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/mod") set_target_properties( @@ -41,7 +41,8 @@ set_target_properties( Fortran_MODULE_DIRECTORY "${Fortran_MODULE_DIRECTORY}" C_STANDARD 99 C_STANDARD_REQUIRED ON - EXPORT_NAME ${PROJECT_NAME}::mtime) + EXPORT_NAME ${PROJECT_NAME}::mtime +) target_include_directories( mtime @@ -51,9 +52,12 @@ target_include_directories( $<INSTALL_INTERFACE:$<$<COMPILE_LANGUAGE:Fortran>:${CMAKE_INSTALL_INCLUDEDIR}>> # Path to the C headers: $<BUILD_INTERFACE:$<$<COMPILE_LANGUAGE:C>:${PROJECT_SOURCE_DIR}/include>> - $<INSTALL_INTERFACE:$<$<COMPILE_LANGUAGE:C>:${CMAKE_INSTALL_INCLUDEDIR}>>) + $<INSTALL_INTERFACE:$<$<COMPILE_LANGUAGE:C>:${CMAKE_INSTALL_INCLUDEDIR}>> +) install(TARGETS mtime EXPORT "${PROJECT_NAME}-targets") -install(DIRECTORY "${Fortran_MODULE_DIRECTORY}/" - "${PROJECT_SOURCE_DIR}/include/" TYPE INCLUDE) +install( + DIRECTORY "${Fortran_MODULE_DIRECTORY}/" "${PROJECT_SOURCE_DIR}/include/" + TYPE INCLUDE +) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 1afe09f21472fd31ca4ff6368a9a051745132d70..ab6466ef12d9c68765d4df3aeeca5831a6d7d916 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -7,15 +7,18 @@ find_path( Check_INCLUDE_DIRS NAMES check.h HINTS ${Check_DIR} ENV Check_DIR - PATH_SUFFIXES include src) + PATH_SUFFIXES include src +) find_library( Check_LIBRARIES check HINTS ${Check_DIR} ENV Check_DIR - PATH_SUFFIXES lib lib64) + PATH_SUFFIXES lib lib64 +) find_library( Subunit_LIBRARIES subunit HINTS ${Check_DIR} ENV Check_DIR - PATH_SUFFIXES lib lib64) + PATH_SUFFIXES lib lib64 +) if(Check_INCLUDE_DIRS) message(STATUS "Found check.h in ${Check_INCLUDE_DIRS}") @@ -29,13 +32,13 @@ else() message(WARNING "libcheck not found") endif() -add_library( - Check::check UNKNOWN IMPORTED) +add_library(Check::check UNKNOWN IMPORTED) set_target_properties( Check::check PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${Check_INCLUDE_DIRS}" IMPORTED_LINK_INTERFACE_LANGUAGES "C" - IMPORTED_LOCATION "${Check_LIBRARIES}") + IMPORTED_LOCATION "${Check_LIBRARIES}" +) add_library( mtime_check @@ -44,7 +47,8 @@ add_library( mtime_datetime_test.c mtime_julianDay_test.c mtime_time_test.c - mtime_timedelta_test.c) + mtime_timedelta_test.c +) target_include_directories(mtime_check PUBLIC ${PROJECT_BINARY_DIR})