taskwarrior/src/CMakeLists.txt
2025-03-08 09:04:01 -05:00

75 lines
3.1 KiB
CMake

cmake_minimum_required (VERSION 3.22)
include_directories (${CMAKE_SOURCE_DIR}
${CMAKE_SOURCE_DIR}/src
${CMAKE_SOURCE_DIR}/src/commands
${CMAKE_SOURCE_DIR}/src/columns
${CMAKE_SOURCE_DIR}/src/libshared/src
${TASK_INCLUDE_DIRS})
add_library (task STATIC CLI2.cpp
Context.cpp
DOM.cpp
Eval.cpp
Filter.cpp
Hooks.cpp
Lexer.cpp
Operation.cpp
TF2.cpp
TDB2.cpp
Task.cpp
Variant.cpp
Version.cpp
ViewTask.cpp
dependency.cpp
feedback.cpp
legacy.cpp
nag.cpp
recur.cpp
rules.cpp
sort.cpp
util.cpp)
target_link_libraries(task taskchampion-cpp)
add_library (libshared STATIC libshared/src/Color.cpp
libshared/src/Configuration.cpp
libshared/src/Datetime.cpp
libshared/src/Duration.cpp
libshared/src/FS.cpp
libshared/src/JSON.cpp
libshared/src/Msg.cpp
libshared/src/Pig.cpp
libshared/src/RX.cpp
libshared/src/Table.cpp
libshared/src/Timer.cpp
libshared/src/format.cpp
libshared/src/ip.cpp
libshared/src/shared.cpp
libshared/src/unicode.cpp
libshared/src/utf8.cpp)
add_executable (task_executable main.cpp)
add_executable (calc_executable calc.cpp)
add_executable (lex_executable lex.cpp)
# Yes, 'task' (and hence libshared) is included twice, otherwise linking fails on assorted OSes.
target_link_libraries (task_executable task commands columns libshared task libshared ${TASK_LIBRARIES})
target_link_libraries (calc_executable task commands columns libshared task libshared ${TASK_LIBRARIES})
target_link_libraries (lex_executable task commands columns libshared task libshared ${TASK_LIBRARIES})
if (DARWIN)
# SystemConfiguration is required by Rust libraries like reqwest, to get proxy configuration.
target_link_libraries (task_executable "-framework CoreFoundation -framework Security -framework SystemConfiguration")
target_link_libraries (calc_executable "-framework CoreFoundation -framework Security -framework SystemConfiguration")
target_link_libraries (lex_executable "-framework CoreFoundation -framework Security -framework SystemConfiguration")
endif (DARWIN)
set_property (TARGET task_executable PROPERTY OUTPUT_NAME "task")
install (TARGETS task_executable DESTINATION ${TASK_BINDIR})
set_property (TARGET calc_executable PROPERTY OUTPUT_NAME "calc")
set_property (TARGET lex_executable PROPERTY OUTPUT_NAME "lex")
#SET(CMAKE_BUILD_TYPE gcov)
#SET(CMAKE_CXX_FLAGS_GCOV "--coverage")
#SET(CMAKE_C_FLAGS_GCOV "--coverage")
#SET(CMAKE_EXE_LINKER_FLAGS_GCOV "--coverage")