diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 233e672..2b2ef59 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -34,7 +34,8 @@ jobs: - name: Install dependencies run: | conda install \ - cmake \ + cmake=3.31.2 \ + rhash=1.4.3 \ make \ mpich-mpicxx \ exodusii==2022.10.* \ @@ -43,6 +44,7 @@ jobs: pybind11 \ pytest \ flake8 \ + gtest \ lcov - name: Configure diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 4edf500..ad0e7c0 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -29,7 +29,8 @@ jobs: - name: Install dependencies run: | conda install \ - cmake \ + cmake=3.31.2 \ + rhash=1.4.3 \ make \ mpich-mpicxx \ exodusii==2022.10.* \ diff --git a/.github/workflows/qa.yml b/.github/workflows/qa.yml index c598e16..76d44a1 100644 --- a/.github/workflows/qa.yml +++ b/.github/workflows/qa.yml @@ -52,9 +52,11 @@ jobs: - name: Install dependencies run: | conda install \ - cmake \ + cmake=3.31.2 \ + rhash=1.4.3 \ make \ mpich-mpicxx \ + gtest \ exodusii==2022.10.* \ fmt=11.* \ yaml-cpp==0.8.0 diff --git a/CMakeLists.txt b/CMakeLists.txt index 9db7f06..d7535ef 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,8 +5,6 @@ project(exodusIIcpp LANGUAGES CXX C ) -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) include(FetchContent) @@ -32,29 +30,6 @@ find_package(NetCDF 4.5 REQUIRED) find_package(HDF5 1.10 REQUIRED COMPONENTS C) find_package(ExodusII REQUIRED) -if (EXODUSIICPP_BUILD_TESTS) - FetchContent_Declare( - googletest - GIT_REPOSITORY https://github.com/google/googletest.git - GIT_TAG v1.15.2 - ) - set(INSTALL_GTEST OFF CACHE BOOL "" FORCE) - mark_as_advanced(FORCE - BUILD_GMOCK - INSTALL_GTEST - FETCHCONTENT_SOURCE_DIR_GOOGLETEST - FETCHCONTENT_UPDATES_DISCONNECTED_GOOGLETEST - ) - - FetchContent_MakeAvailable(googletest) - mark_as_advanced(FORCE - FETCHCONTENT_BASE_DIR - FETCHCONTENT_FULLY_DISCONNECTED - FETCHCONTENT_QUIET - FETCHCONTENT_UPDATES_DISCONNECTED - ) -endif() - add_subdirectory(src) if (EXODUSIICPP_BUILD_TOOLS) add_subdirectory(tools) diff --git a/cmake/exodusiicpp-config.cmake.in b/cmake/exodusiicpp-config.cmake.in index bbb8b8a..fa788c3 100644 --- a/cmake/exodusiicpp-config.cmake.in +++ b/cmake/exodusiicpp-config.cmake.in @@ -9,6 +9,7 @@ include(CMakeFindDependencyMacro) find_dependency(fmt 11 REQUIRED) find_dependency(NetCDF REQUIRED) +find_dependency(HDF5 1.10 REQUIRED COMPONENTS C) find_dependency(ExodusII REQUIRED) check_required_components(exodusIIcpp) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 753e70a..54f0bdf 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -7,6 +7,9 @@ add_library( node_set.cpp side_set.cpp ) + +target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_17) + if(CMAKE_PROJECT_NAME STREQUAL "exodusIIcpp") target_code_coverage(${PROJECT_NAME}) target_sanitization(${PROJECT_NAME}) @@ -48,7 +51,7 @@ if (EXODUSIICPP_INSTALL) ) write_basic_package_version_file(exodusiicpp-config-version.cmake VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion + COMPATIBILITY SameMajorVersion ) install( @@ -82,4 +85,4 @@ if (EXODUSIICPP_INSTALL) "${CMAKE_SOURCE_DIR}/cmake/FindNetCDF.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/exodusIIcpp ) -endif() \ No newline at end of file +endif() diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 33e37ff..b1a7046 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,9 +1,6 @@ project(exodusIIcpp-test) -include(GoogleTest) - -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_REQUIRED True) +find_package(GTest REQUIRED) add_executable(${PROJECT_NAME} ElementBlock_test.cpp @@ -27,8 +24,7 @@ target_link_libraries( ${PROJECT_NAME} PUBLIC exodusIIcpp - gtest_main - gmock_main + GTest::gmock_main ) target_compile_definitions(${PROJECT_NAME} diff --git a/tools/exo2yml/CMakeLists.txt b/tools/exo2yml/CMakeLists.txt index c2b139b..0a878c0 100644 --- a/tools/exo2yml/CMakeLists.txt +++ b/tools/exo2yml/CMakeLists.txt @@ -1,8 +1,5 @@ project(exo2yml LANGUAGES CXX) -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_REQUIRED ON) - find_package(yaml-cpp 0.8 REQUIRED) add_executable(${PROJECT_NAME} diff --git a/tools/yml2exo/CMakeLists.txt b/tools/yml2exo/CMakeLists.txt index 3d0205e..be625f3 100644 --- a/tools/yml2exo/CMakeLists.txt +++ b/tools/yml2exo/CMakeLists.txt @@ -1,8 +1,5 @@ project(yml2exo LANGUAGES CXX) -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_REQUIRED ON) - find_package(yaml-cpp 0.8 REQUIRED) add_executable(${PROJECT_NAME}