mirror of https://github.com/phonopy/phono3py.git
Add cmake-format and cmake-lint in pre-commit
This commit is contained in:
parent
d66c7049eb
commit
72d892848f
|
@ -56,3 +56,9 @@ repos:
|
|||
# - '-I/Users/togo/.miniforge/envs/dev/include/python3.10'
|
||||
# - '-I/Users/togo/.miniforge/envs/dev/lib/python3.10/site-packages/numpy/core/include'
|
||||
stages: [manual]
|
||||
|
||||
- repo: https://github.com/cheshirekow/cmake-format-precommit
|
||||
rev: v0.6.10
|
||||
hooks:
|
||||
- id: cmake-format
|
||||
- id: cmake-lint
|
||||
|
|
352
CMakeLists.txt
352
CMakeLists.txt
|
@ -9,7 +9,7 @@ option(USE_OpenMP "Option to search OpenMP library" ON)
|
|||
option(WITH_TESTS "build unit tests" OFF)
|
||||
option(BUILD_SHARED_LIBRARIES "Option to build shared library" OFF)
|
||||
if(WITH_TESTS)
|
||||
set(BUILD_SHARED_LIBRARIES ON)
|
||||
set(BUILD_SHARED_LIBRARIES ON)
|
||||
endif()
|
||||
|
||||
set(CMAKE_MACOSX_RPATH 1)
|
||||
|
@ -17,7 +17,7 @@ set(CMAKE_C_FLAGS_RELEASE "-Wall -O2")
|
|||
set(CMAKE_C_FLAGS_DEBUG "-g -DLAGWARNING -DTHMWARNING")
|
||||
|
||||
if(NOT CMAKE_BUILD_TYPE)
|
||||
set(CMAKE_BUILD_TYPE Release)
|
||||
set(CMAKE_BUILD_TYPE Release)
|
||||
endif(NOT CMAKE_BUILD_TYPE)
|
||||
|
||||
message(STATUS "Build type: ${CMAKE_BUILD_TYPE}")
|
||||
|
@ -29,231 +29,239 @@ include(GNUInstallDirs)
|
|||
|
||||
# Version numbers
|
||||
file(READ ${PROJECT_SOURCE_DIR}/phono3py/version.py version_file)
|
||||
string(REGEX MATCH "__version__.*([0-9]+)[.]([0-9]+)[.]([0-9]+)" phono3py_version ${version_file})
|
||||
set(phono3py_major_version ${CMAKE_MATCH_1})
|
||||
set(phono3py_minor_version ${CMAKE_MATCH_2})
|
||||
set(phono3py_micro_version ${CMAKE_MATCH_3})
|
||||
set(serial "${phono3py_major_version}.${phono3py_minor_version}.${phono3py_micro_version}")
|
||||
set(soserial "1")
|
||||
string(REGEX MATCH "__version__.*([0-9]+)[.]([0-9]+)[.]([0-9]+)"
|
||||
phono3py_version ${version_file})
|
||||
set(MAJOR_VERSION ${CMAKE_MATCH_1})
|
||||
set(MINOR_VERSION ${CMAKE_MATCH_2})
|
||||
set(MICRO_VERSION ${CMAKE_MATCH_3})
|
||||
set(SERIAL "${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}")
|
||||
set(SOSERIAL "1")
|
||||
|
||||
if(USE_CONDA_PATH)
|
||||
message(STATUS "$ENV{CONDA_PREFIX}")
|
||||
set(CMAKE_MODULE_PATH $ENV{CONDA_PREFIX})
|
||||
set(MY_INCLUDES $ENV{CONDA_PREFIX}/include ${PROJECT_SOURCE_DIR}/c)
|
||||
link_directories($ENV{CONDA_PREFIX}/lib)
|
||||
message(STATUS "$ENV{CONDA_PREFIX}")
|
||||
set(CMAKE_MODULE_PATH $ENV{CONDA_PREFIX})
|
||||
set(MY_INCLUDES $ENV{CONDA_PREFIX}/include ${PROJECT_SOURCE_DIR}/c)
|
||||
link_directories($ENV{CONDA_PREFIX}/lib)
|
||||
else()
|
||||
set(MY_INCLUDES ${PROJECT_SOURCE_DIR}/c)
|
||||
set(MY_INCLUDES ${PROJECT_SOURCE_DIR}/c)
|
||||
endif()
|
||||
|
||||
if(USE_OpenMP)
|
||||
message(STATUS "Find OpenMP library")
|
||||
find_package(OpenMP)
|
||||
message(STATUS "Find OpenMP library")
|
||||
find_package(OpenMP)
|
||||
|
||||
if(OpenMP_FOUND)
|
||||
message(STATUS "OpenMP libs: ${OpenMP_C_LIBRARIES}")
|
||||
message(STATUS "OpenMP flags: ${OpenMP_C_FLAGS}")
|
||||
endif()
|
||||
if(OpenMP_FOUND)
|
||||
message(STATUS "OpenMP libs: ${OpenMP_C_LIBRARIES}")
|
||||
message(STATUS "OpenMP flags: ${OpenMP_C_FLAGS}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(PHONO3PY OR PHONONCALC)
|
||||
find_package(BLAS REQUIRED) # set BLAS_LIBRARIES
|
||||
find_package(BLAS REQUIRED) # set BLAS_LIBRARIES
|
||||
|
||||
if(BLAS_FOUND)
|
||||
message(STATUS "BLAS libs: ${BLAS_LIBRARIES}")
|
||||
message(STATUS "BLAS flags: ${BLAS_LINKER_FLAGS}")
|
||||
endif()
|
||||
if(BLAS_FOUND)
|
||||
message(STATUS "BLAS libs: ${BLAS_LIBRARIES}")
|
||||
message(STATUS "BLAS flags: ${BLAS_LINKER_FLAGS}")
|
||||
endif()
|
||||
|
||||
find_package(LAPACK REQUIRED) # set LAPACK_LIBRARIES
|
||||
find_package(LAPACK REQUIRED) # set LAPACK_LIBRARIES
|
||||
|
||||
if(LAPACK_FOUND)
|
||||
message(STATUS "LAPACK libs: ${LAPACK_LIBRARIES}")
|
||||
message(STATUS "LAPACK flags: ${LAPACK_LINKER_FLAGS}")
|
||||
endif()
|
||||
if(LAPACK_FOUND)
|
||||
message(STATUS "LAPACK libs: ${LAPACK_LIBRARIES}")
|
||||
message(STATUS "LAPACK flags: ${LAPACK_LINKER_FLAGS}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(PHONO3PY OR PHONONCALC)
|
||||
if(BLAS_LIBRARIES MATCHES "libmkl")
|
||||
message(STATUS "MKL detected: Set C-macros MKL_LAPACKE MULTITHREADED_BLAS")
|
||||
endif()
|
||||
if(BLAS_LIBRARIES MATCHES "libmkl")
|
||||
message(STATUS "MKL detected: Set C-macros MKL_LAPACKE MULTITHREADED_BLAS")
|
||||
endif()
|
||||
|
||||
if(BLAS_LIBRARIES MATCHES "libopenblas")
|
||||
message(STATUS "OpenBLAS detected: Set C-macro MULTITHREADED_BLAS")
|
||||
endif()
|
||||
if(BLAS_LIBRARIES MATCHES "libopenblas")
|
||||
message(STATUS "OpenBLAS detected: Set C-macro MULTITHREADED_BLAS")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# ###########
|
||||
# ##############################################################################
|
||||
# phono3py #
|
||||
# ###########
|
||||
# ##############################################################################
|
||||
if(PHONO3PY)
|
||||
# Source code
|
||||
set(SOURCES_PHONO3PY
|
||||
${PROJECT_SOURCE_DIR}/c/bzgrid.c
|
||||
${PROJECT_SOURCE_DIR}/c/collision_matrix.c
|
||||
${PROJECT_SOURCE_DIR}/c/fc3.c
|
||||
${PROJECT_SOURCE_DIR}/c/grgrid.c
|
||||
${PROJECT_SOURCE_DIR}/c/imag_self_energy_with_g.c
|
||||
${PROJECT_SOURCE_DIR}/c/interaction.c
|
||||
${PROJECT_SOURCE_DIR}/c/isotope.c
|
||||
${PROJECT_SOURCE_DIR}/c/lagrid.c
|
||||
${PROJECT_SOURCE_DIR}/c/lapack_wrapper.c
|
||||
${PROJECT_SOURCE_DIR}/c/phono3py.c
|
||||
${PROJECT_SOURCE_DIR}/c/phonoc_utils.c
|
||||
${PROJECT_SOURCE_DIR}/c/pp_collision.c
|
||||
${PROJECT_SOURCE_DIR}/c/real_self_energy.c
|
||||
${PROJECT_SOURCE_DIR}/c/real_to_reciprocal.c
|
||||
${PROJECT_SOURCE_DIR}/c/reciprocal_to_normal.c
|
||||
${PROJECT_SOURCE_DIR}/c/snf3x3.c
|
||||
${PROJECT_SOURCE_DIR}/c/tetrahedron_method.c
|
||||
${PROJECT_SOURCE_DIR}/c/triplet.c
|
||||
${PROJECT_SOURCE_DIR}/c/triplet_grid.c
|
||||
${PROJECT_SOURCE_DIR}/c/triplet_iw.c)
|
||||
# Source code
|
||||
set(SOURCES_PHONO3PY
|
||||
${PROJECT_SOURCE_DIR}/c/bzgrid.c
|
||||
${PROJECT_SOURCE_DIR}/c/collision_matrix.c
|
||||
${PROJECT_SOURCE_DIR}/c/fc3.c
|
||||
${PROJECT_SOURCE_DIR}/c/grgrid.c
|
||||
${PROJECT_SOURCE_DIR}/c/imag_self_energy_with_g.c
|
||||
${PROJECT_SOURCE_DIR}/c/interaction.c
|
||||
${PROJECT_SOURCE_DIR}/c/isotope.c
|
||||
${PROJECT_SOURCE_DIR}/c/lagrid.c
|
||||
${PROJECT_SOURCE_DIR}/c/lapack_wrapper.c
|
||||
${PROJECT_SOURCE_DIR}/c/phono3py.c
|
||||
${PROJECT_SOURCE_DIR}/c/phonoc_utils.c
|
||||
${PROJECT_SOURCE_DIR}/c/pp_collision.c
|
||||
${PROJECT_SOURCE_DIR}/c/real_self_energy.c
|
||||
${PROJECT_SOURCE_DIR}/c/real_to_reciprocal.c
|
||||
${PROJECT_SOURCE_DIR}/c/reciprocal_to_normal.c
|
||||
${PROJECT_SOURCE_DIR}/c/snf3x3.c
|
||||
${PROJECT_SOURCE_DIR}/c/tetrahedron_method.c
|
||||
${PROJECT_SOURCE_DIR}/c/triplet.c
|
||||
${PROJECT_SOURCE_DIR}/c/triplet_grid.c
|
||||
${PROJECT_SOURCE_DIR}/c/triplet_iw.c)
|
||||
|
||||
if(BUILD_SHARED_LIBRARIES)
|
||||
# Shared library
|
||||
add_library(ph3py SHARED ${SOURCES_PHONO3PY})
|
||||
target_link_libraries(ph3py m ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES} ${OpenMP_C_LIBRARIES})
|
||||
target_include_directories(ph3py PRIVATE ${MY_INCLUDES})
|
||||
target_compile_options(ph3py PRIVATE ${OpenMP_C_FLAGS})
|
||||
|
||||
if(BLAS_LIBRARIES MATCHES "libmkl")
|
||||
target_compile_definitions(ph3py PRIVATE MKL_LAPACKE THM_EPSILON=1e-10)
|
||||
endif()
|
||||
|
||||
if(BLAS_LIBRARIES MATCHES "libopenblas")
|
||||
target_compile_definitions(ph3py PRIVATE THM_EPSILON=1e-10)
|
||||
endif()
|
||||
|
||||
set_property(TARGET ph3py PROPERTY VERSION ${serial})
|
||||
set_property(TARGET ph3py PROPERTY SOVERSION ${soserial})
|
||||
install(TARGETS ph3py LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
endif()
|
||||
|
||||
# Static link library
|
||||
add_library(ph3py_static STATIC ${SOURCES_PHONO3PY})
|
||||
target_link_libraries(ph3py_static m ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES} ${OpenMP_C_LIBRARIES})
|
||||
target_include_directories(ph3py_static PRIVATE ${MY_INCLUDES})
|
||||
target_compile_options(ph3py_static PRIVATE ${OpenMP_C_FLAGS})
|
||||
if(BUILD_SHARED_LIBRARIES)
|
||||
# Shared library
|
||||
add_library(ph3py SHARED ${SOURCES_PHONO3PY})
|
||||
target_link_libraries(ph3py m ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES}
|
||||
${OpenMP_C_LIBRARIES})
|
||||
target_include_directories(ph3py PRIVATE ${MY_INCLUDES})
|
||||
target_compile_options(ph3py PRIVATE ${OpenMP_C_FLAGS})
|
||||
|
||||
if(BLAS_LIBRARIES MATCHES "libmkl")
|
||||
target_compile_definitions(ph3py_static PRIVATE MKL_LAPACKE THM_EPSILON=1e-10)
|
||||
target_compile_definitions(ph3py PRIVATE MKL_LAPACKE THM_EPSILON=1e-10)
|
||||
endif()
|
||||
|
||||
if(BLAS_LIBRARIES MATCHES "libopenblas")
|
||||
target_compile_definitions(ph3py_static PRIVATE THM_EPSILON=1e-10)
|
||||
target_compile_definitions(ph3py PRIVATE THM_EPSILON=1e-10)
|
||||
endif()
|
||||
|
||||
set_property(TARGET ph3py_static PROPERTY VERSION ${serial})
|
||||
set_property(TARGET ph3py_static PROPERTY SOVERSION ${soserial})
|
||||
set_property(TARGET ph3py_static PROPERTY OUTPUT_NAME ph3py)
|
||||
install(TARGETS ph3py_static ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
set_property(TARGET ph3py PROPERTY VERSION ${SERIAL})
|
||||
set_property(TARGET ph3py PROPERTY SOVERSION ${SOSERIAL})
|
||||
install(TARGETS ph3py LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
endif()
|
||||
|
||||
# Header file
|
||||
install(FILES ${PROJECT_SOURCE_DIR}/c/phono3py.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
# Static link library
|
||||
add_library(ph3py_static STATIC ${SOURCES_PHONO3PY})
|
||||
target_link_libraries(ph3py_static m ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES}
|
||||
${OpenMP_C_LIBRARIES})
|
||||
target_include_directories(ph3py_static PRIVATE ${MY_INCLUDES})
|
||||
target_compile_options(ph3py_static PRIVATE ${OpenMP_C_FLAGS})
|
||||
|
||||
if(BLAS_LIBRARIES MATCHES "libmkl")
|
||||
target_compile_definitions(ph3py_static PRIVATE MKL_LAPACKE
|
||||
THM_EPSILON=1e-10)
|
||||
endif()
|
||||
|
||||
if(BLAS_LIBRARIES MATCHES "libopenblas")
|
||||
target_compile_definitions(ph3py_static PRIVATE THM_EPSILON=1e-10)
|
||||
endif()
|
||||
|
||||
set_property(TARGET ph3py_static PROPERTY VERSION ${SERIAL})
|
||||
set_property(TARGET ph3py_static PROPERTY SOVERSION ${SOSERIAL})
|
||||
set_property(TARGET ph3py_static PROPERTY OUTPUT_NAME ph3py)
|
||||
install(TARGETS ph3py_static ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
|
||||
# Header file
|
||||
install(FILES ${PROJECT_SOURCE_DIR}/c/phono3py.h
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
endif()
|
||||
|
||||
# ############
|
||||
# ##############################################################################
|
||||
# phononcalc #
|
||||
# ############
|
||||
# ##############################################################################
|
||||
if(PHONONCALC)
|
||||
# Source code
|
||||
set(SOURCES_PHONONCALC
|
||||
${PROJECT_SOURCE_DIR}/c/dynmat.c
|
||||
${PROJECT_SOURCE_DIR}/c/lapack_wrapper.c
|
||||
${PROJECT_SOURCE_DIR}/c/phonon.c
|
||||
${PROJECT_SOURCE_DIR}/c/phononcalc.c)
|
||||
# Source code
|
||||
set(SOURCES_PHONONCALC
|
||||
${PROJECT_SOURCE_DIR}/c/dynmat.c ${PROJECT_SOURCE_DIR}/c/lapack_wrapper.c
|
||||
${PROJECT_SOURCE_DIR}/c/phonon.c ${PROJECT_SOURCE_DIR}/c/phononcalc.c)
|
||||
|
||||
if(BUILD_SHARED_LIBRARIES)
|
||||
# Shared library
|
||||
add_library(phcalc SHARED ${SOURCES_PHONONCALC})
|
||||
target_link_libraries(phcalc m ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES} ${OpenMP_C_LIBRARIES})
|
||||
target_include_directories(phcalc PRIVATE ${MY_INCLUDES})
|
||||
target_compile_options(phcalc PRIVATE ${OpenMP_C_FLAGS})
|
||||
|
||||
if(BLAS_LIBRARIES MATCHES "libmkl")
|
||||
target_compile_definitions(phcalc PRIVATE MKL_LAPACKE MULTITHREADED_BLAS)
|
||||
endif()
|
||||
|
||||
if(BLAS_LIBRARIES MATCHES "libopenblas")
|
||||
target_compile_definitions(phcalc PRIVATE MULTITHREADED_BLAS)
|
||||
endif()
|
||||
|
||||
set_property(TARGET phcalc PROPERTY VERSION ${serial})
|
||||
set_property(TARGET phcalc PROPERTY SOVERSION ${soserial})
|
||||
install(TARGETS phcalc LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
endif()
|
||||
|
||||
# Static link library
|
||||
add_library(phcalc_static STATIC ${SOURCES_PHONONCALC})
|
||||
target_link_libraries(phcalc_static m ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES} ${OpenMP_C_LIBRARIES})
|
||||
target_include_directories(phcalc_static PRIVATE ${MY_INCLUDES})
|
||||
target_compile_options(phcalc_static PRIVATE ${OpenMP_C_FLAGS})
|
||||
if(BUILD_SHARED_LIBRARIES)
|
||||
# Shared library
|
||||
add_library(phcalc SHARED ${SOURCES_PHONONCALC})
|
||||
target_link_libraries(phcalc m ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES}
|
||||
${OpenMP_C_LIBRARIES})
|
||||
target_include_directories(phcalc PRIVATE ${MY_INCLUDES})
|
||||
target_compile_options(phcalc PRIVATE ${OpenMP_C_FLAGS})
|
||||
|
||||
if(BLAS_LIBRARIES MATCHES "libmkl")
|
||||
target_compile_definitions(phcalc_static PRIVATE MKL_LAPACKE MULTITHREADED_BLAS)
|
||||
target_compile_definitions(phcalc PRIVATE MKL_LAPACKE MULTITHREADED_BLAS)
|
||||
endif()
|
||||
|
||||
if(BLAS_LIBRARIES MATCHES "libopenblas")
|
||||
target_compile_definitions(phcalc_static PRIVATE MULTITHREADED_BLAS)
|
||||
target_compile_definitions(phcalc PRIVATE MULTITHREADED_BLAS)
|
||||
endif()
|
||||
|
||||
set_property(TARGET phcalc_static PROPERTY VERSION ${serial})
|
||||
set_property(TARGET phcalc_static PROPERTY SOVERSION ${soserial})
|
||||
set_property(TARGET phcalc_static PROPERTY OUTPUT_NAME phcalc)
|
||||
install(TARGETS phcalc_static ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
set_property(TARGET phcalc PROPERTY VERSION ${SERIAL})
|
||||
set_property(TARGET phcalc PROPERTY SOVERSION ${SOSERIAL})
|
||||
install(TARGETS phcalc LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
endif()
|
||||
|
||||
# Header file
|
||||
install(FILES ${PROJECT_SOURCE_DIR}/c/phononcalc.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
# Static link library
|
||||
add_library(phcalc_static STATIC ${SOURCES_PHONONCALC})
|
||||
target_link_libraries(phcalc_static m ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES}
|
||||
${OpenMP_C_LIBRARIES})
|
||||
target_include_directories(phcalc_static PRIVATE ${MY_INCLUDES})
|
||||
target_compile_options(phcalc_static PRIVATE ${OpenMP_C_FLAGS})
|
||||
|
||||
if(BLAS_LIBRARIES MATCHES "libmkl")
|
||||
target_compile_definitions(phcalc_static PRIVATE MKL_LAPACKE
|
||||
MULTITHREADED_BLAS)
|
||||
endif()
|
||||
|
||||
if(BLAS_LIBRARIES MATCHES "libopenblas")
|
||||
target_compile_definitions(phcalc_static PRIVATE MULTITHREADED_BLAS)
|
||||
endif()
|
||||
|
||||
set_property(TARGET phcalc_static PROPERTY VERSION ${SERIAL})
|
||||
set_property(TARGET phcalc_static PROPERTY SOVERSION ${SOSERIAL})
|
||||
set_property(TARGET phcalc_static PROPERTY OUTPUT_NAME phcalc)
|
||||
install(TARGETS phcalc_static ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
|
||||
# Header file
|
||||
install(FILES ${PROJECT_SOURCE_DIR}/c/phononcalc.h
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
endif()
|
||||
|
||||
# #######
|
||||
# ##############################################################################
|
||||
# grid #
|
||||
# #######
|
||||
# ##############################################################################
|
||||
if(GRIDSYS)
|
||||
# Source code
|
||||
set(SOURCES_GRIDSYS
|
||||
${PROJECT_SOURCE_DIR}/c/bzgrid.c
|
||||
${PROJECT_SOURCE_DIR}/c/grgrid.c
|
||||
${PROJECT_SOURCE_DIR}/c/gridsys.c
|
||||
${PROJECT_SOURCE_DIR}/c/lagrid.c
|
||||
${PROJECT_SOURCE_DIR}/c/phonoc_utils.c
|
||||
${PROJECT_SOURCE_DIR}/c/snf3x3.c
|
||||
${PROJECT_SOURCE_DIR}/c/tetrahedron_method.c
|
||||
${PROJECT_SOURCE_DIR}/c/triplet.c
|
||||
${PROJECT_SOURCE_DIR}/c/triplet_grid.c
|
||||
${PROJECT_SOURCE_DIR}/c/triplet_iw.c)
|
||||
# Source code
|
||||
set(SOURCES_GRIDSYS
|
||||
${PROJECT_SOURCE_DIR}/c/bzgrid.c
|
||||
${PROJECT_SOURCE_DIR}/c/grgrid.c
|
||||
${PROJECT_SOURCE_DIR}/c/gridsys.c
|
||||
${PROJECT_SOURCE_DIR}/c/lagrid.c
|
||||
${PROJECT_SOURCE_DIR}/c/phonoc_utils.c
|
||||
${PROJECT_SOURCE_DIR}/c/snf3x3.c
|
||||
${PROJECT_SOURCE_DIR}/c/tetrahedron_method.c
|
||||
${PROJECT_SOURCE_DIR}/c/triplet.c
|
||||
${PROJECT_SOURCE_DIR}/c/triplet_grid.c
|
||||
${PROJECT_SOURCE_DIR}/c/triplet_iw.c)
|
||||
|
||||
if(BUILD_SHARED_LIBRARIES)
|
||||
# Shared library
|
||||
add_library(gridsys SHARED ${SOURCES_GRIDSYS})
|
||||
target_link_libraries(gridsys m ${OpenMP_C_LIBRARIES})
|
||||
target_include_directories(gridsys PRIVATE ${MY_INCLUDES})
|
||||
target_compile_options(gridsys PRIVATE ${OpenMP_C_FLAGS})
|
||||
target_compile_definitions(gridsys PRIVATE THM_EPSILON=1e-10)
|
||||
set_property(TARGET gridsys PROPERTY VERSION ${serial})
|
||||
set_property(TARGET gridsys PROPERTY SOVERSION ${soserial})
|
||||
install(TARGETS gridsys LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
endif()
|
||||
if(BUILD_SHARED_LIBRARIES)
|
||||
# Shared library
|
||||
add_library(gridsys SHARED ${SOURCES_GRIDSYS})
|
||||
target_link_libraries(gridsys m ${OpenMP_C_LIBRARIES})
|
||||
target_include_directories(gridsys PRIVATE ${MY_INCLUDES})
|
||||
target_compile_options(gridsys PRIVATE ${OpenMP_C_FLAGS})
|
||||
target_compile_definitions(gridsys PRIVATE THM_EPSILON=1e-10)
|
||||
set_property(TARGET gridsys PROPERTY VERSION ${SERIAL})
|
||||
set_property(TARGET gridsys PROPERTY SOVERSION ${SOSERIAL})
|
||||
install(TARGETS gridsys LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
endif()
|
||||
|
||||
# Static link library
|
||||
add_library(gridsys_static STATIC ${SOURCES_GRIDSYS})
|
||||
target_link_libraries(gridsys_static m ${OpenMP_C_LIBRARIES})
|
||||
target_include_directories(gridsys_static PRIVATE ${MY_INCLUDES})
|
||||
target_compile_options(gridsys_static PRIVATE ${OpenMP_C_FLAGS})
|
||||
target_compile_definitions(gridsys_static PRIVATE THM_EPSILON=1e-10)
|
||||
set_property(TARGET gridsys_static PROPERTY VERSION ${serial})
|
||||
set_property(TARGET gridsys_static PROPERTY SOVERSION ${soserial})
|
||||
set_property(TARGET gridsys_static PROPERTY OUTPUT_NAME gridsys)
|
||||
install(TARGETS gridsys_static ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
# Static link library
|
||||
add_library(gridsys_static STATIC ${SOURCES_GRIDSYS})
|
||||
target_link_libraries(gridsys_static m ${OpenMP_C_LIBRARIES})
|
||||
target_include_directories(gridsys_static PRIVATE ${MY_INCLUDES})
|
||||
target_compile_options(gridsys_static PRIVATE ${OpenMP_C_FLAGS})
|
||||
target_compile_definitions(gridsys_static PRIVATE THM_EPSILON=1e-10)
|
||||
set_property(TARGET gridsys_static PROPERTY VERSION ${SERIAL})
|
||||
set_property(TARGET gridsys_static PROPERTY SOVERSION ${SOSERIAL})
|
||||
set_property(TARGET gridsys_static PROPERTY OUTPUT_NAME gridsys)
|
||||
install(TARGETS gridsys_static ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
|
||||
# Header file
|
||||
install(FILES ${PROJECT_SOURCE_DIR}/c/gridsys.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
# Header file
|
||||
install(FILES ${PROJECT_SOURCE_DIR}/c/gridsys.h
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
endif()
|
||||
|
||||
if(WITH_TESTS)
|
||||
add_subdirectory(ctest)
|
||||
add_subdirectory(ctest)
|
||||
endif()
|
||||
|
||||
if (WITH_Fortran)
|
||||
if(WITH_Fortran)
|
||||
enable_language(Fortran)
|
||||
add_subdirectory(fortran)
|
||||
endif()
|
||||
|
|
|
@ -13,6 +13,11 @@ if(NOT GTest_FOUND)
|
|||
|
||||
# Fetch GoogleTest
|
||||
include(FetchContent)
|
||||
|
||||
# cmake-lint inline directives must be specified at body scope. See
|
||||
# https://cmake-format.readthedocs.io/en/latest/lint-inline.html
|
||||
|
||||
# cmake-lint: disable=C0301
|
||||
FetchContent_Declare(
|
||||
googletest
|
||||
URL https://github.com/google/googletest/archive/refs/tags/release-1.12.1.tar.gz
|
||||
|
@ -20,12 +25,12 @@ if(NOT GTest_FOUND)
|
|||
FetchContent_MakeAvailable(googletest)
|
||||
endif()
|
||||
|
||||
foreach(TESTCASE IN ITEMS test_gridsys)
|
||||
add_executable(${TESTCASE} ${TESTCASE}.cpp)
|
||||
foreach(testcase IN ITEMS test_gridsys)
|
||||
add_executable(${testcase} ${testcase}.cpp)
|
||||
target_link_libraries(
|
||||
${TESTCASE}
|
||||
${testcase}
|
||||
PUBLIC gridsys
|
||||
PRIVATE GTest::gtest GTest::gtest_main)
|
||||
target_include_directories(${TESTCASE} PUBLIC ${PROJECT_SOURCE_DIR}/c)
|
||||
gtest_discover_tests(${TESTCASE})
|
||||
target_include_directories(${testcase} PUBLIC ${PROJECT_SOURCE_DIR}/c)
|
||||
gtest_discover_tests(${testcase})
|
||||
endforeach()
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
if(USE_OpenMP)
|
||||
find_package(OpenMP COMPONENTS Fortran REQUIRED)
|
||||
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} ${OpenMP_Fortran_FLAGS}")
|
||||
find_package(
|
||||
OpenMP
|
||||
COMPONENTS Fortran
|
||||
REQUIRED)
|
||||
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} ${OpenMP_Fortran_FLAGS}")
|
||||
endif()
|
||||
|
||||
add_library(gridsysf_static STATIC ${PROJECT_SOURCE_DIR}/fortran/gridsysf.f90)
|
||||
|
@ -9,22 +12,23 @@ set_property(TARGET gridsysf_static PROPERTY OUTPUT_NAME gridsysf)
|
|||
target_link_libraries(gridsysf_static PRIVATE gridsys_static)
|
||||
|
||||
if(BUILD_SHARED_LIBRARIES)
|
||||
add_library(gridsysf SHARED ${PROJECT_SOURCE_DIR}/fortran/gridsysf.f90)
|
||||
set_property(TARGET gridsysf PROPERTY VERSION ${PROJECT_VERSION})
|
||||
set_property(TARGET gridsysf PROPERTY SOVERSION ${soserial})
|
||||
target_link_libraries(gridsysf PUBLIC gridsys)
|
||||
target_include_directories(gridsysf PUBLIC
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>"
|
||||
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_LIBDIR}>")
|
||||
add_library(gridsysf SHARED ${PROJECT_SOURCE_DIR}/fortran/gridsysf.f90)
|
||||
set_property(TARGET gridsysf PROPERTY VERSION ${PROJECT_VERSION})
|
||||
set_property(TARGET gridsysf PROPERTY SOVERSION ${soserial})
|
||||
target_link_libraries(gridsysf PUBLIC gridsys)
|
||||
target_include_directories(
|
||||
gridsysf PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>"
|
||||
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_LIBDIR}>")
|
||||
endif()
|
||||
|
||||
install(TARGETS gridsysf_static
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
install(TARGETS gridsysf_static ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
|
||||
if(BUILD_SHARED_LIBRARIES)
|
||||
install(TARGETS gridsysf
|
||||
EXPORT gridsysTargets
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
install(
|
||||
TARGETS gridsysf
|
||||
EXPORT gridsysTargets
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
endif()
|
||||
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/gridsysf.mod DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/gridsysf.mod
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
|
|
Loading…
Reference in New Issue