Skip to content

Commit 92d483a

Browse files
authored
Use current binary and source dirs in CMake files (#130)
1 parent bf9eec7 commit 92d483a

File tree

7 files changed

+35
-53
lines changed

7 files changed

+35
-53
lines changed

CLUEstering/BindingModules/CMakeLists.txt

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,26 @@
11
cmake_minimum_required(VERSION 3.16.0)
22

33
# Convolutional Kernels
4-
pybind11_add_module(
5-
CLUE_Convolutional_Kernels SHARED
6-
${CMAKE_SOURCE_DIR}/CLUEstering/BindingModules/binding_kernels.cpp)
4+
pybind11_add_module(CLUE_Convolutional_Kernels SHARED
5+
${CMAKE_CURRENT_SOURCE_DIR}/binding_kernels.cpp)
76
target_include_directories(
87
CLUE_Convolutional_Kernels
9-
PRIVATE ${CMAKE_SOURCE_DIR}/include ${alpaka_SOURCE_DIR}/include
10-
${Boost_INCLUDE_DIR})
8+
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../include
9+
${alpaka_SOURCE_DIR}/include ${Boost_INCLUDE_DIR})
1110
target_compile_definitions(
1211
CLUE_Convolutional_Kernels PRIVATE ALPAKA_HOST_ONLY
1312
ALPAKA_ACC_CPU_B_SEQ_T_SEQ_ENABLED)
1413
set_target_properties(
15-
CLUE_Convolutional_Kernels
16-
PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/CLUEstering/lib/)
14+
CLUE_Convolutional_Kernels PROPERTIES LIBRARY_OUTPUT_DIRECTORY
15+
${CMAKE_CURRENT_BINARY_DIR}/../../lib/CLUEstering/lib/)
1716
# copy shared library for local testing
1817
add_custom_command(
1918
TARGET CLUE_Convolutional_Kernels
2019
POST_BUILD
2120
COMMAND
2221
${CMAKE_COMMAND} -E copy
23-
${CMAKE_BINARY_DIR}/lib/CLUEstering/lib/CLUE_Convolutional_Kernels.*
24-
${CMAKE_SOURCE_DIR}/CLUEstering/lib/
25-
COMMENT "Copying module to ${CMAKE_SOURCE_DIR}/CLUEstering/lib")
26-
22+
${CMAKE_CURRENT_BINARY_DIR}/../../lib/CLUEstering/lib/CLUE_Convolutional_Kernels.*
23+
${CMAKE_CURRENT_SOURCE_DIR}/../lib/)
2724

2825
add_subdirectory(serial)
2926

@@ -48,4 +45,3 @@ check_language(HIP)
4845
if(CMAKE_HIP_COMPILER)
4946
add_subdirectory(hip)
5047
endif()
51-
Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
enable_language(CUDA)
32
set(CMAKE_CUDA_HOST_COMPILER ${CMAKE_CUDA_COMPILER})
43

@@ -11,20 +10,18 @@ endif()
1110
set_source_files_properties(binding_gpu_cuda.cpp PROPERTIES LANGUAGE CUDA)
1211
pybind11_add_module(CLUE_GPU_CUDA SHARED binding_gpu_cuda.cpp)
1312
target_include_directories(
14-
CLUE_GPU_CUDA PRIVATE ${CMAKE_SOURCE_DIR}/include
15-
${alpaka_SOURCE_DIR}/include ${Boost_INCLUDE_DIR})
13+
CLUE_GPU_CUDA PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../../include
14+
${alpaka_SOURCE_DIR}/include ${Boost_INCLUDE_DIR})
1615
target_compile_definitions(CLUE_GPU_CUDA PRIVATE ALPAKA_ACC_GPU_CUDA_ENABLED)
1716
target_compile_options(CLUE_GPU_CUDA PRIVATE --expt-relaxed-constexpr)
1817
set_target_properties(
1918
CLUE_GPU_CUDA
20-
PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/CLUEstering/lib/
21-
CUDA_ARCHITECTURES "50;60;61;62;70;80;90")
19+
PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/../../../lib/CLUEstering/lib/
20+
CUDA_ARCHITECTURES "50;60;61;62;70;80;90")
2221
# copy shared library for local testing
2322
add_custom_command(
2423
TARGET CLUE_GPU_CUDA
2524
POST_BUILD
2625
COMMAND
27-
${CMAKE_COMMAND} -E copy
28-
${CMAKE_BINARY_DIR}/lib/CLUEstering/lib/CLUE_GPU_CUDA.*
29-
${CMAKE_SOURCE_DIR}/CLUEstering/lib/
30-
COMMENT "Copying module to ${CMAKE_SOURCE_DIR}/CLUEstering/lib")
26+
${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/../../../lib/CLUEstering/lib/CLUE_GPU_CUDA.*
27+
${CMAKE_CURRENT_SOURCE_DIR}/../../lib/)
Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
enable_language(HIP)
32
set(CMAKE_HIP_HOST_COMPILER ${CMAKE_HIP_COMPILER})
43

@@ -8,21 +7,19 @@ set(hip_BASE "${hip_INCLUDE_DIRS}/..")
87
set(CMAKE_CXX_COMPILER "${hip_BASE}/bin/hipcc")
98
pybind11_add_module(CLUE_GPU_HIP SHARED binding_gpu_hip.cpp)
109
target_include_directories(
11-
CLUE_GPU_HIP PRIVATE ${CMAKE_SOURCE_DIR}/include
12-
${alpaka_SOURCE_DIR}/include ${Boost_INCLUDE_DIR})
10+
CLUE_GPU_HIP PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../../include
11+
${alpaka_SOURCE_DIR}/include ${Boost_INCLUDE_DIR})
1312
target_compile_options(CLUE_GPU_HIP PRIVATE -DALPAKA_ACC_GPU_HIP_ENABLED)
1413
target_include_directories(CLUE_GPU_HIP PRIVATE ${hip_INCLUDE_DIRS})
1514
target_include_directories(CLUE_GPU_HIP PRIVATE ${hip_BASE}/hiprand/include)
1615
target_include_directories(CLUE_GPU_HIP PRIVATE ${hip_BASE}/rocrand/include)
1716
set_target_properties(
1817
CLUE_GPU_HIP PROPERTIES LIBRARY_OUTPUT_DIRECTORY
19-
${CMAKE_BINARY_DIR}/lib/CLUEstering/lib/)
18+
${CMAKE_CURRENT_BINARY_DIR}/../../../lib/CLUEstering/lib/)
2019
# create link of shared object to lib folder inside CLUEstering directory
2120
add_custom_command(
2221
TARGET CLUE_GPU_HIP
2322
POST_BUILD
2423
COMMAND
25-
${CMAKE_COMMAND} -E copy
26-
${CMAKE_BINARY_DIR}/lib/CLUEstering/lib/CLUE_GPU_HIP.*
27-
${CMAKE_SOURCE_DIR}/CLUEstering/lib/
28-
COMMENT "Copying module to ${CMAKE_SOURCE_DIR}/CLUEstering/lib")
24+
${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/../../../lib/CLUEstering/lib/CLUE_GPU_HIP.*
25+
${CMAKE_CURRENT_SOURCE_DIR}/../../lib/)
Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,17 @@
1-
21
pybind11_add_module(CLUE_CPU_OMP SHARED binding_cpu_omp.cpp)
32
target_include_directories(
4-
CLUE_CPU_OMP PRIVATE ${CMAKE_SOURCE_DIR}/include
5-
${alpaka_SOURCE_DIR}/include ${Boost_INCLUDE_DIR})
3+
CLUE_CPU_OMP PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../../include
4+
${alpaka_SOURCE_DIR}/include ${Boost_INCLUDE_DIR})
65
target_compile_definitions(
76
CLUE_CPU_OMP PRIVATE ALPAKA_HOST_ONLY ALPAKA_ACC_CPU_B_OMP2_T_SEQ_ENABLED)
87
target_link_libraries(CLUE_CPU_OMP PRIVATE OpenMP::OpenMP_CXX)
98
set_target_properties(
109
CLUE_CPU_OMP PROPERTIES LIBRARY_OUTPUT_DIRECTORY
11-
${CMAKE_BINARY_DIR}/lib/CLUEstering/lib/)
10+
${CMAKE_CURRENT_BINARY_DIR}/../../../lib/CLUEstering/lib/)
1211
# copy shared library for local testing
1312
add_custom_command(
1413
TARGET CLUE_CPU_OMP
1514
POST_BUILD
1615
COMMAND
17-
${CMAKE_COMMAND} -E copy
18-
${CMAKE_BINARY_DIR}/lib/CLUEstering/lib/CLUE_CPU_OMP.*
19-
${CMAKE_SOURCE_DIR}/CLUEstering/lib/
20-
COMMENT "Copying module to ${CMAKE_SOURCE_DIR}/CLUEstering/lib")
16+
${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/../../../lib/CLUEstering/lib/CLUE_CPU_OMP.*
17+
${CMAKE_CURRENT_SOURCE_DIR}/../../lib/)
Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,17 @@
1-
21
pybind11_add_module(CLUE_CPU_Serial SHARED binding_cpu.cpp)
32
target_include_directories(
4-
CLUE_CPU_Serial PRIVATE ${CMAKE_SOURCE_DIR}/include
3+
CLUE_CPU_Serial PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../../include
54
${alpaka_SOURCE_DIR}/include ${Boost_INCLUDE_DIR})
65
target_compile_definitions(
76
CLUE_CPU_Serial PRIVATE ALPAKA_HOST_ONLY ALPAKA_ACC_CPU_B_SEQ_T_SEQ_ENABLED)
87
set_target_properties(
98
CLUE_CPU_Serial PROPERTIES LIBRARY_OUTPUT_DIRECTORY
10-
${CMAKE_BINARY_DIR}/lib/CLUEstering/lib/)
9+
${CMAKE_CURRENT_BINARY_DIR}/../../../lib/CLUEstering/lib/)
1110
# copy shared library for local testing
1211
add_custom_command(
1312
TARGET CLUE_CPU_Serial
1413
POST_BUILD
1514
COMMAND
1615
${CMAKE_COMMAND} -E copy
17-
${CMAKE_BINARY_DIR}/lib/CLUEstering/lib/CLUE_CPU_Serial.*
18-
${CMAKE_SOURCE_DIR}/CLUEstering/lib/
19-
COMMENT "Copying module to ${CMAKE_SOURCE_DIR}/CLUEstering/lib")
16+
${CMAKE_CURRENT_BINARY_DIR}/../../../lib/CLUEstering/lib/CLUE_CPU_Serial.*
17+
${CMAKE_CURRENT_SOURCE_DIR}/../../lib/)
Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,17 @@
1-
21
pybind11_add_module(CLUE_CPU_TBB SHARED binding_cpu_tbb.cpp)
32
target_include_directories(
4-
CLUE_CPU_TBB PRIVATE ${CMAKE_SOURCE_DIR}/include
5-
${alpaka_SOURCE_DIR}/include ${Boost_SOURCE_DIR})
3+
CLUE_CPU_TBB PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../../include
4+
${alpaka_SOURCE_DIR}/include ${Boost_SOURCE_DIR})
65
target_compile_definitions(
76
CLUE_CPU_TBB PRIVATE ALPAKA_HOST_ONLY ALPAKA_ACC_CPU_B_TBB_T_SEQ_ENABLED)
87
target_link_libraries(CLUE_CPU_TBB PRIVATE TBB::tbb)
98
set_target_properties(
109
CLUE_CPU_TBB PROPERTIES LIBRARY_OUTPUT_DIRECTORY
11-
${CMAKE_BINARY_DIR}/lib/CLUEstering/lib/)
10+
${CMAKE_CURRENT_BINARY_DIR}/../../../lib/CLUEstering/lib/)
1211
# copy shared library for local testing
1312
add_custom_command(
1413
TARGET CLUE_CPU_TBB
1514
POST_BUILD
1615
COMMAND
17-
${CMAKE_COMMAND} -E copy
18-
${CMAKE_BINARY_DIR}/lib/CLUEstering/lib/CLUE_CPU_TBB.*
19-
${CMAKE_SOURCE_DIR}/CLUEstering/lib/
20-
COMMENT "Copying module to ${CMAKE_SOURCE_DIR}/CLUEstering/lib")
16+
${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/../../../lib/CLUEstering/lib/CLUE_CPU_TBB.*
17+
${CMAKE_CURRENT_SOURCE_DIR}/../../lib/)

CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ FetchContent_Declare(
3939
FetchContent_MakeAvailable(alpaka)
4040

4141
# create lib directory in CLUEstering folder
42-
file(MAKE_DIRECTORY ${CMAKE_SOURCE_DIR}/CLUEstering/lib)
42+
file(MAKE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/CLUEstering/lib)
4343

4444
add_subdirectory(CLUEstering/BindingModules)
4545

@@ -52,7 +52,7 @@ set(CLUE_GENERATED_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/CLUEstering")
5252
add_library(CLUEstering INTERFACE)
5353
target_include_directories(
5454
CLUEstering
55-
INTERFACE $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/CLUEstering/include>
55+
INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/CLUEstering/include>
5656
$<BUILD_INTERFACE:${CLUE_GENERATED_INCLUDE_DIR}>
5757
$<INSTALL_INTERFACE:include>)
5858

0 commit comments

Comments
 (0)