Skip to content

Commit 2d9dfc3

Browse files
authored
Merge pull request #163 from DARMA-tasking/150-cmake-use-per-target-link-and-compilation-properties
#150: [CMake] Use per target link and compilation properties
2 parents 1799fe8 + 11f3c30 commit 2d9dfc3

File tree

6 files changed

+21
-18
lines changed

6 files changed

+21
-18
lines changed

CMakeLists.txt

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -48,28 +48,28 @@ if(APPLE AND NOT CMAKE_CXX_COMPILER_ID MATCHES "AppleClang")
4848
add_compile_options(-ffat-lto-objects)
4949
endif()
5050

51-
add_definitions(-DVT_TV_N_THREADS=${VT_TV_N_THREADS})
52-
add_compile_definitions(SRC_DIR="${CMAKE_CURRENT_SOURCE_DIR}")
53-
add_compile_definitions(BUILD_DIR="${CMAKE_BINARY_DIR}")
54-
if(VT_TV_OPENMP_ENABLED)
55-
add_definitions(-DVT_TV_OPENMP_ENABLED=1)
56-
else()
57-
add_definitions(-DVT_TV_OPENMP_ENABLED=0)
58-
endif()
59-
60-
add_custom_target(vt_tv_examples)
61-
if (VT_TV_TESTS_ENABLED)
62-
add_custom_target(vt_tv_tests)
63-
endif()
64-
add_custom_target(vt_tv_apps)
65-
6651
set(PROJECT_BIN_DIR ${CMAKE_CURRENT_BINARY_DIR})
6752
set(PROJECT_BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
6853
set(PROJECT_LIB_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib)
6954
set(PROJECT_EXAMPLE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/examples)
7055
set(PROJECT_APP_DIR ${CMAKE_CURRENT_SOURCE_DIR}/apps)
7156
set(PROJECT_BINDINGS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/bindings)
7257

58+
function(add_vttv_definitions TARGET)
59+
target_compile_definitions(${TARGET}
60+
PRIVATE
61+
VT_TV_N_THREADS=${VT_TV_N_THREADS}
62+
SRC_DIR="${PROJECT_BASE_DIR}"
63+
BUILD_DIR="${CMAKE_BINARY_DIR}"
64+
)
65+
66+
if(VT_TV_OPENMP_ENABLED)
67+
target_compile_definitions(${TARGET} PRIVATE VT_TV_OPENMP_ENABLED=1)
68+
else()
69+
target_compile_definitions(${TARGET} PRIVATE VT_TV_OPENMP_ENABLED=0)
70+
endif()
71+
endfunction(add_vttv_definitions TARGET)
72+
7373
add_subdirectory(src)
7474
link_openmp()
7575
add_subdirectory(examples)

apps/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ foreach(APP_FULL ${PROJECT_APPS})
5252
${VT_TV_LIBRARY_NS}
5353
)
5454

55+
add_vttv_definitions(${APP})
56+
5557
vtk_module_autoinit(
5658
TARGETS ${APP}
5759
MODULES ${VTK_LIBRARIES}

bindings/python/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ nanobind_add_module(vttv ${PYTHON_BINDING_SRCS} tv.cc)
1414

1515
# .. Link it to necessary libraries
1616
target_link_libraries(vttv PUBLIC ${VT_TV_LIBRARY_NS} ${JSON_LIBRARY} ${FMT_LIBRARY})
17+
add_vttv_definitions(vttv)
1718

1819
vtk_module_autoinit(
1920
TARGETS vttv

cmake/load_openmp.cmake

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
find_package(OpenMP)
22
if (OPENMP_FOUND)
33
message(STATUS "Found OpenMP")
4-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
5-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
6-
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
74
else ()
85
message(STATUS "Did not find OpenMP")
96
set(VT_TV_OPENMP_ENABLED OFF)

src/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,8 @@ target_include_directories(
108108
$<INSTALL_INTERFACE:include>
109109
)
110110

111+
add_vttv_definitions(${VT_TV_LIBRARY})
112+
111113
install(
112114
TARGETS ${VT_TV_LIBRARY}
113115
EXPORT ${VT_TV_LIBRARY}

tests/unit/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,4 @@ vtk_module_autoinit(
6565

6666
vt_tv_link_target(AllTests)
6767
gtest_discover_tests(AllTests)
68+
add_vttv_definitions(AllTests)

0 commit comments

Comments
 (0)