Skip to content

Commit 7bb8be8

Browse files
committed
test: add lepton to run_colvars_test_cuda
1 parent 12f9cff commit 7bb8be8

1 file changed

Lines changed: 40 additions & 3 deletions

File tree

tests/functional_gpu/CMakeLists.txt

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ include(CheckIncludeFile)
33
project(run_colvars_test_cuda LANGUAGES CXX)
44

55
option(BUILD_TESTS "Build tests" ON)
6+
option(COLVARS_LEPTON "Build Colvars with Lepton" ON)
67

78
if(NOT EXISTS ${COLVARS_SOURCE_DIR})
89
set(COLVARS_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../.." CACHE STRING "Colvars source code directory")
@@ -33,7 +34,37 @@ set(COLVARS_CUDA_SOURCE ${COLVARS_CUDA_DIR}/colvaratoms_kernel.cu
3334

3435
file(GLOB COLVARS_SOURCES ${COLVARS_SOURCE_DIR}/src/[^.]*.cpp)
3536

37+
# Build Lepton
38+
if(COLVARS_LEPTON)
39+
if(NOT DEFINED LEPTON_DIR)
40+
set(LEPTON_DIR "${COLVARS_SOURCE_DIR}/openmm-source/libraries/lepton")
41+
if(NOT EXISTS ${LEPTON_DIR})
42+
# Try the parent folder
43+
get_filename_component(LEPTON_DIR ${COLVARS_SOURCE_DIR} DIRECTORY)
44+
set(LEPTON_DIR "${LEPTON_DIR}/openmm-source/libraries/lepton")
45+
endif()
46+
if(NOT EXISTS ${LEPTON_DIR})
47+
# Giving up, cloning OpenMM into a sub-folder
48+
execute_process(COMMAND git clone --depth=1 https://github.com/openmm/openmm.git "${COLVARS_SOURCE_DIR}/openmm-source")
49+
set(LEPTON_DIR "${COLVARS_SOURCE_DIR}/openmm-source/libraries/lepton")
50+
endif()
51+
message(STATUS "Using Lepton library from: ${LEPTON_DIR}")
52+
endif()
53+
file(GLOB LEPTON_SOURCES ${LEPTON_DIR}/src/[^.]*.cpp)
54+
add_library(lepton OBJECT ${LEPTON_SOURCES})
55+
if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
56+
target_compile_options(lepton PRIVATE /DLEPTON_BUILDING_STATIC_LIBRARY /wd4267)
57+
endif()
58+
set_property(TARGET lepton PROPERTY POSITION_INDEPENDENT_CODE 1)
59+
target_include_directories(lepton PRIVATE ${LEPTON_DIR}/include)
60+
# Silence warnings for Lepton
61+
target_compile_options(lepton PRIVATE $<$<CXX_COMPILER_ID:Clang>:-Wno-tautological-undefined-compare -Wno-unknown-warning-option>)
62+
endif()
63+
3664
add_definitions(-DCOLVARS_CUDA)
65+
if(COLVARS_LEPTON)
66+
add_definitions(-DLEPTON)
67+
endif()
3768

3869
add_executable(
3970
run_colvars_test_cuda
@@ -45,13 +76,19 @@ add_executable(
4576
target_include_directories(run_colvars_test_cuda
4677
PUBLIC "${COLVARS_SOURCE_DIR}/src"
4778
PUBLIC "${COLVARS_CUDA_DIR}"
48-
PUBLIC "${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}")
79+
PUBLIC "${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}"
80+
PUBLIC $<$<BOOL:${COLVARS_LEPTON}>:${LEPTON_DIR}/include>)
4981

5082
if(CUDAToolkit_VERSION_MAJOR GREATER_EQUAL 10)
51-
target_link_libraries(run_colvars_test_cuda CUDA::cudart CUDA::nvtx3)
83+
target_link_libraries(run_colvars_test_cuda PUBLIC CUDA::cudart PUBLIC CUDA::nvtx3)
5284
else()
53-
target_link_libraries(run_colvars_test_cuda CUDA::cudart CUDA::nvToolsExt)
85+
target_link_libraries(run_colvars_test_cuda PUBLIC CUDA::cudart PUBLIC CUDA::nvToolsExt)
5486
endif()
87+
88+
if(COLVARS_LEPTON)
89+
target_link_libraries(run_colvars_test_cuda PUBLIC lepton)
90+
endif()
91+
5592
set_property(TARGET run_colvars_test_cuda PROPERTY LANGUAGE CUDA)
5693
# set_property(TARGET run_colvars_test_cuda PROPERTY CUDA_ARCHITECTURES OFF)
5794

0 commit comments

Comments
 (0)