@@ -5,9 +5,6 @@ MESSAGE(STATUS "CMAKE_ROOT: " ${CMAKE_ROOT})
55# Project name
66project (Cpp-Taskflow VERSION 2.0.0)
77
8- # Enable memory test
9- include (CTest )
10-
118# Turn on the verbose
129set (CMAKE_VERBOSE_MAKEFILE ON )
1310
@@ -40,9 +37,13 @@ Cpp-Taskflow currently supports the following compilers:\n\
4037endif ()
4138
4239# CXX target properties
43- set (CMAKE_CXX_STANDARD 17)
44- set (CMAKE_CXX_STANDARD_REQUIRED ON )
45- set (CMAKE_CXX_EXTENSIONS OFF )
40+ #set(CMAKE_CXX_STANDARD 17)
41+ #set(CMAKE_CXX_STANDARD_REQUIRED ON)
42+ #set(CMAKE_CXX_EXTENSIONS OFF)
43+
44+ # installation path
45+ set (TF_INC_INSTALL_DIR "${CMAKE_INSTALL_PREFIX} /include" )
46+ set (TF_LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX} /lib" )
4647
4748message (STATUS "CMAKE_HOST_SYSTEM: ${CMAKE_HOST_SYSTEM} " )
4849message (STATUS "CMAKE_BUILD_TYPE: " ${CMAKE_BUILD_TYPE} )
@@ -60,25 +61,34 @@ message(STATUS "PROJECT_NAME: " ${PROJECT_NAME})
6061message (STATUS "TF_BUILD_EXAMPLES: " ${TF_BUILD_EXAMPLES} )
6162message (STATUS "TF_BUILD_TESTS: " ${TF_BUILD_TESTS} )
6263message (STATUS "TF_BUILD_BENCHMARKS: " ${TF_BUILD_BENCHMARKS} )
64+ message (STATUS "TF_INC_INSTALL_DIR: " ${TF_INC_INSTALL_DIR} )
65+ message (STATUS "TF_LIB_INSTALL_DIR: " ${TF_LIB_INSTALL_DIR} )
6366
6467# add the binary tree to the search path for include files
6568include_directories (${PROJECT_SOURCE_DIR} )
6669include_directories (doctest )
6770
71+ # -----------------------------------------------------------------------------
72+ # 3rd-party package include
73+ # -----------------------------------------------------------------------------
74+
75+ # Enable test
76+ include (CTest )
77+
6878# Find pthread package
6979find_package (Threads REQUIRED )
7080
71- ## Find OpenMP package
72- #include(FindOpenMP)
73- #
74- # if(OpenMP_CXX_FOUND)
75- # message(STATUS "OpenMP_CXX_SPEC_DATE: ${OpenMP_CXX_SPEC_DATE}" )
76- # message(STATUS "OpenMP_CXX_VERSION: ${OpenMP_CXX_VERSION}")
77- # message(STATUS "OpenMP_CXX_FLAGS: ${OpenMP_CXX_FLAGS}" )
78- # message(STATUS "OpenMP_CXX_LIB_NAMES: ${OpenMP_CXX_LIB_NAMES}")
79- # else(OpenMP_CXX_FOUND)
80- # message(WARNING "OpenMP CXX not found")
81- # endif(OpenMP_CXX_FOUND )
81+ # -----------------------------------------------------------------------------
82+ # Cpp-Taskflow library interface
83+ # -----------------------------------------------------------------------------
84+
85+ add_library ( ${PROJECT_NAME} INTERFACE )
86+
87+ target_compile_features ( ${PROJECT_NAME} INTERFACE cxx_std_17 )
88+ target_include_directories ( ${PROJECT_NAME} INTERFACE
89+ $< BUILD_INTERFACE : ${CMAKE_CURRENT_SOURCE_DIR} >
90+ $< INSTALL_INTERFACE : include />
91+ )
8292
8393# -----------------------------------------------------------------------------
8494# Example program
@@ -91,44 +101,44 @@ message(STATUS "Building examples ...")
91101set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR} /example)
92102
93103add_executable (simple example/simple.cpp )
94- target_link_libraries (simple Threads::Threads )
104+ target_link_libraries (simple ${PROJECT_NAME} Threads::Threads )
95105
96106add_executable (subflow example/subflow.cpp )
97- target_link_libraries (subflow Threads::Threads )
107+ target_link_libraries (subflow ${PROJECT_NAME} Threads::Threads )
98108
99109add_executable (debug example/debug.cpp )
100- target_link_libraries (debug Threads::Threads )
110+ target_link_libraries (debug ${PROJECT_NAME} Threads::Threads )
101111
102112add_executable (emplace example/emplace.cpp )
103- target_link_libraries (emplace Threads::Threads )
113+ target_link_libraries (emplace ${PROJECT_NAME} Threads::Threads )
104114
105115add_executable (reduce example/reduce.cpp )
106- target_link_libraries (reduce Threads::Threads )
116+ target_link_libraries (reduce ${PROJECT_NAME} Threads::Threads )
107117
108118add_executable (threadpool example/threadpool.cpp )
109- target_link_libraries (threadpool Threads::Threads )
119+ target_link_libraries (threadpool ${PROJECT_NAME} Threads::Threads )
110120
111121add_executable (taskflow example/taskflow.cpp )
112- target_link_libraries (taskflow Threads::Threads )
122+ target_link_libraries (taskflow ${PROJECT_NAME} Threads::Threads )
113123
114124add_executable (matrix example/matrix.cpp )
115- target_link_libraries (matrix Threads::Threads )
125+ target_link_libraries (matrix ${PROJECT_NAME} Threads::Threads )
116126
117127add_executable (parallel_for example/parallel_for.cpp )
118- target_link_libraries (parallel_for Threads::Threads )
128+ target_link_libraries (parallel_for ${PROJECT_NAME} Threads::Threads )
119129
120130add_executable (threadpool_cxx14 example/threadpool_cxx14.cpp )
121131set_property (TARGET threadpool_cxx14 PROPERTY CXX_STANDARD 14 )
122132target_link_libraries (threadpool_cxx14 Threads::Threads )
123133
124134add_executable (multiple_dispatch example/multiple_dispatch.cpp )
125- target_link_libraries (multiple_dispatch Threads::Threads )
135+ target_link_libraries (multiple_dispatch ${PROJECT_NAME} Threads::Threads )
126136
127137add_executable (dispatch example/dispatch.cpp )
128- target_link_libraries (dispatch Threads::Threads )
138+ target_link_libraries (dispatch ${PROJECT_NAME} Threads::Threads )
129139
130140add_executable (executor example/executor.cpp )
131- target_link_libraries (executor Threads::Threads )
141+ target_link_libraries (executor ${PROJECT_NAME} Threads::Threads )
132142
133143endif ()
134144
@@ -146,7 +156,7 @@ set(TF_UTEST_DIR ${PROJECT_SOURCE_DIR}/unittest)
146156
147157# unittest for taskflow
148158add_executable (taskflow_test_tmp unittest/taskflow.cpp )
149- target_link_libraries (taskflow_test_tmp Threads::Threads )
159+ target_link_libraries (taskflow_test_tmp ${PROJECT_NAME} Threads::Threads )
150160set_target_properties (taskflow_test_tmp PROPERTIES OUTPUT_NAME "taskflow" )
151161add_test (builder ${TF_UTEST_DIR} /taskflow -tc=Builder )
152162add_test (dispatch ${TF_UTEST_DIR} /taskflow -tc=Dispatch )
@@ -160,7 +170,7 @@ add_test(detached_subflow ${TF_UTEST_DIR}/taskflow -tc=DetachedSubflow)
160170
161171# unittest for threadpool
162172add_executable (threadpool_test_tmp unittest/threadpool.cpp )
163- target_link_libraries (threadpool_test_tmp Threads::Threads )
173+ target_link_libraries (threadpool_test_tmp ${PROJECT_NAME} Threads::Threads )
164174set_target_properties (threadpool_test_tmp PROPERTIES OUTPUT_NAME "threadpool" )
165175add_test (WorkerQueue.OneThread ${TF_UTEST_DIR} /threadpool -tc=WorkerQueue.OneThread )
166176add_test (WorkerQueue.TwoThread ${TF_UTEST_DIR} /threadpool -tc=WorkerQueue.TwoThread )
@@ -207,20 +217,6 @@ endif()
207217# create find_package(Cpp-Taskflow CONFIG)
208218# -----------------------------------------------------------------------------
209219
210- add_library (${PROJECT_NAME} INTERFACE )
211-
212- target_compile_features (${PROJECT_NAME} INTERFACE cxx_std_17 )
213- target_include_directories (${PROJECT_NAME} INTERFACE
214- $<BUILD_INTERFACE :${CMAKE_CURRENT_SOURCE_DIR} >
215- $<INSTALL_INTERFACE :include />
216- )
217-
218- set (TF_INC_INSTALL_DIR "${CMAKE_INSTALL_PREFIX} /include" )
219- set (TF_LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX} /lib" )
220-
221- message (STATUS "TF_INC_INSTALL_DIR: " ${TF_INC_INSTALL_DIR} )
222- message (STATUS "TF_LIB_INSTALL_DIR: " ${TF_LIB_INSTALL_DIR} )
223-
224220# install header
225221install (DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} /taskflow DESTINATION ${TF_INC_INSTALL_DIR} )
226222
@@ -235,7 +231,11 @@ export(
235231export (PACKAGE ${PROJECT_NAME} )
236232
237233install (TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME} Targets )
238- install (EXPORT ${PROJECT_NAME} Targets NAMESPACE ${PROJECT_NAME} :: DESTINATION ${TF_LIB_INSTALL_DIR} /cmake)
234+ install (
235+ EXPORT ${PROJECT_NAME} Targets
236+ NAMESPACE ${PROJECT_NAME} ::
237+ DESTINATION ${TF_LIB_INSTALL_DIR} /cmake
238+ )
239239
240240# set up config
241241include (CMakePackageConfigHelpers )
0 commit comments