Skip to content

Commit

Permalink
Merge pull request #113 from lanl/cmake_progress_target
Browse files Browse the repository at this point in the history
cmake: use progress exported target
  • Loading branch information
junghans committed Apr 28, 2020
2 parents e196e61 + f5870b5 commit d4b5b71
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 18 deletions.
6 changes: 5 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ before_install:
# Install BML, PROGRESS and LAMMPS
- cd; cd bml; CC=gcc FC=gfortran CMAKE_BUILD_TYPE=Release BLAS_VENDOR=GNU BML_OPENMP=yes BML_TESTING=no ./build.sh configure
- cd; cd bml/build; make; make install
- cd; cd qmd-progress; CC=gcc FC=gfortran PROGRESS_MPI=no PROGRESS_TESTING=yes BLAS_VENDOR=GNU PKG_CONFIG_PATH=~/bml/install/lib/pkgconfig PROGRESS_OPENMP=yes ./build.sh configure
- cd; cd qmd-progress; CC=gcc FC=gfortran PROGRESS_MPI=no PROGRESS_TESTING=yes BLAS_VENDOR=GNU CMAKE_PREFIX_PATH=~/bml/install PROGRESS_OPENMP=yes ./build.sh configure
- cd; cd qmd-progress/build; make; make install
# Lammps installation
- cd; cd lammps/lib/latte; ln -s $LATTEPATH/src/latte_c_bind.o filelink.o ; ln -s $LATTEPATH/src includelink ; ln -s $LATTEPATH liblink
Expand Down Expand Up @@ -59,3 +59,7 @@ after_success:

cache:
- ccache

branches:
only:
- master
33 changes: 17 additions & 16 deletions cmake/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,19 +37,19 @@ find_package(LAPACK REQUIRED)

message(STATUS "Linking BLAS via ${BLAS_LIBRARIES}")
message(STATUS "Linking LAPACK via ${LAPACK_LIBRARIES}")
include(CheckFortranSourceCompiles)
set(CMAKE_REQUIRED_FLAGS ${OpenMP_Fortran_FLAGS})
set(CMAKE_REQUIRED_LIBRARIES ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
check_Fortran_source_compiles(" program blas\n call dgemm()\n end program blas" BLAS_WORKS)
check_Fortran_source_compiles(" program lapack\n call dsyev()\n end program lapack" LAPACK_WORKS)
if(NOT BLAS_WORKS OR NOT LAPACK_WORKS)
message(FATAL_ERROR "Can not compile against BLAS/LAPACK. Please see error log.")
endif()

option(PROGRESS "Use progress library" OFF)
if(PROGRESS)
find_package(BML REQUIRED)
find_package(PROGRESS REQUIRED)
if(NOT TARGET PROGRESS::progress)
find_package(PROGRESS CONFIG QUIET)
endif()
if(TARGET PROGRESS::progress)
set(PROGRESS_LIBRARIES PROGRESS::progress)
else()
find_package(BML MODULE REQUIRED)
find_package(PROGRESS MODULE REQUIRED)
endif()
message(STATUS "Found PROGRESS: ${PROGRESS_LIBRARIES} ${BML_LIBRARIES}")
endif()

option(DBCSR_OPT "Whether to use DBCSR" OFF)
Expand Down Expand Up @@ -134,25 +134,27 @@ add_library(latte ${MYMODULES_SOURCES} ${MYSUBS_SOURCES}
${CMAKE_CURRENT_SOURCE_DIR}/../src/latte_lib.F90
${CMAKE_CURRENT_SOURCE_DIR}/../src/latte_c_bind.F90
)
target_compile_options(latte PRIVATE -cpp ${OpenMP_Fortran_FLAGS})
target_compile_options(latte PRIVATE -cpp)
install(TARGETS latte EXPORT LATTE_Targets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
install(EXPORT LATTE_Targets FILE LATTE_Targets.cmake NAMESPACE LATTE:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/LATTE)
include(CMakePackageConfigHelpers)
configure_file(LATTEConfig.cmakein ${CMAKE_CURRENT_BINARY_DIR}/LATTEConfig.cmake @ONLY)
write_basic_package_version_file("LATTEConfigVersion.cmake" VERSION ${PROJECT_VERSION} COMPATIBILITY ExactVersion)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/LATTEConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/LATTEConfigVersion.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/LATTE)
add_library(LATTE::latte ALIAS latte)
target_link_libraries(latte PRIVATE
${LAPACK_LIBRARIES}
${BLAS_LIBRARIES}
${PROGRESS_LIBRARIES}
${BML_LIBRARIES}
${CUDA_cublas_LIBRARY}
${CUDA_cusparse_LIBRARY}
${CUDA_CUDART_LIBRARY}
${MPI_Fortran_LIBRARIES}
PUBLIC
${LAPACK_LIBRARIES}
${BLAS_LIBRARIES}
)
if(OPENMP)
target_link_libraries(latte PUBLIC "${OpenMP_Fortran_FLAGS}")
target_link_libraries(latte PUBLIC OpenMP::OpenMP_Fortran)
endif()
target_include_directories(latte PRIVATE ${MPI_Fortran_INCLUDE_PATH} ${PROGRESS_INCLUDE_DIRS} ${BML_INCLUDE_DIRS})

Expand All @@ -173,8 +175,7 @@ else()
set(LATTE LATTE_${PRECISION})
endif()
add_executable(${LATTE} ${CMAKE_CURRENT_SOURCE_DIR}/../src/latte.F90)
target_compile_options(${LATTE} PRIVATE -cpp ${OpenMP_Fortran_FLAGS})
target_link_libraries(${LATTE} latte)
target_link_libraries(${LATTE} latte ${PROGRESS_LIBRARIES})
target_include_directories(${LATTE} PRIVATE ${MPI_Fortran_INCLUDE_PATH} ${PROGRESS_INCLUDE_DIRS} ${BML_INCLUDE_DIRS})
target_compile_definitions(${LATTE} PRIVATE XSYEV ${PRECISION}PREC GPU${GPUOPT} DBCSR_${DBCSR_OPT} MPI_${DO_MPI} PROGRESS${PROGRESS})
install(TARGETS ${LATTE} DESTINATION ${CMAKE_INSTALL_BINDIR})
3 changes: 3 additions & 0 deletions cmake/LATTEConfig.cmakein
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,7 @@ include(CMakeFindDependencyMacro)
if(@DO_MPI@)
find_dependency(MPI REQUIRED)
endif()
if(@OPENMP@)
find_dependency(OpenMP REQUIRED)
endif()
include("${CMAKE_CURRENT_LIST_DIR}/LATTE_Targets.cmake")
2 changes: 1 addition & 1 deletion src/Doxyfile.in
Original file line number Diff line number Diff line change
Expand Up @@ -811,7 +811,7 @@ EXCLUDE_SYMLINKS = NO
# Note that the wildcards are matched against the file with absolute path, so to
# exclude all test directories for example use the pattern */test/*

EXCLUDE_PATTERNS = @CMAKE_SOURCE_DIR@/src/*generic*.F90
EXCLUDE_PATTERNS = @PROJECT_SOURCE_DIR@/src/*generic*.F90

# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
# (namespaces, classes, functions, etc.) that should be excluded from the
Expand Down

0 comments on commit d4b5b71

Please sign in to comment.