Skip to content

Commit

Permalink
Split CMakeLists.txt
Browse files Browse the repository at this point in the history
  • Loading branch information
resetius committed Dec 27, 2024
1 parent 9d1fea0 commit 001d696
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 39 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/c-cpp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,4 @@ jobs:
uses: EnricoMi/publish-unit-test-result-action@v1.28
if: always()
with:
files: build/*.xml
files: build/test/*.xml
41 changes: 3 additions & 38 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,51 +7,16 @@ endif ()

enable_testing()

set(CMAKE_CXX_STANDARD 20)

find_package(PkgConfig REQUIRED)
pkg_check_modules(CMOCKA REQUIRED cmocka)
find_package(SQLite3)

add_subdirectory(coroio/coroio)
add_subdirectory(src)

add_library(miniraft
src/messages.cpp
src/raft.cpp
src/server.cpp
src/persist.cpp
)

target_link_libraries(miniraft PUBLIC coroio)

add_executable(test_raft test/test_raft.cpp)
add_executable(test_read_write test/test_read_write.cpp)
add_executable(server server/server.cpp)
add_executable(client client/client.cpp)
add_executable(kv examples/kv.cpp)

include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src)

target_link_libraries(server miniraft coroio)
target_link_libraries(client miniraft coroio)
target_link_libraries(kv miniraft coroio)

if (SQLite3_FOUND)
add_executable(sql examples/sql.cpp)
target_include_directories(sql PRIVATE ${SQLite3_INCLUDE_DIRS})
target_link_libraries(sql PRIVATE ${SQLite3_LIBRARIES} miniraft coroio)
endif()

target_include_directories(test_raft PRIVATE ${CMOCKA_INCLUDE_DIRS})
target_link_directories(test_raft PRIVATE ${CMOCKA_LIBRARY_DIRS})
target_link_libraries(test_raft miniraft coroio ${CMOCKA_LIBRARIES})

add_test(NAME test_raft COMMAND ${CMAKE_BINARY_DIR}/test_raft)
set_tests_properties(test_raft PROPERTIES ENVIRONMENT "CMOCKA_MESSAGE_OUTPUT=xml;CMOCKA_XML_FILE=test_raft.xml")

target_include_directories(test_read_write PRIVATE ${CMOCKA_INCLUDE_DIRS})
target_link_directories(test_read_write PRIVATE ${CMOCKA_LIBRARY_DIRS})
target_link_libraries(test_read_write miniraft coroio ${CMOCKA_LIBRARIES})

add_test(NAME test_read_write COMMAND ${CMAKE_BINARY_DIR}/test_read_write)
set_tests_properties(test_read_write PROPERTIES ENVIRONMENT "CMOCKA_MESSAGE_OUTPUT=xml;CMOCKA_XML_FILE=test_read_write.xml")
add_subdirectory(examples)
add_subdirectory(test)
17 changes: 17 additions & 0 deletions examples/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
find_package(SQLite3)

macro(target name source)
add_executable(${name} ${source})
if (SQLite3_FOUND)
target_include_directories(${name} PRIVATE ${SQLite3_INCLUDE_DIRS})
target_link_libraries(${name} PRIVATE miniraft coroio ${SQLite3_LIBRARIES})
else()
target_link_libraries(${name} miniraft coroio)
endif()
endmacro()

target(kv kv.cpp)

if (SQLite3_FOUND)
target(sql sql.cpp)
endif()
9 changes: 9 additions & 0 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
add_library(miniraft
messages.cpp
raft.cpp
server.cpp
persist.cpp
)

target_link_libraries(miniraft PUBLIC coroio)
target_compile_features(miniraft PUBLIC cxx_std_20)
17 changes: 17 additions & 0 deletions test/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
find_package(PkgConfig REQUIRED)
pkg_check_modules(CMOCKA REQUIRED cmocka)

macro(ut name source)
add_executable(${name} ${source})
target_include_directories(${name} PRIVATE ${CMOCKA_INCLUDE_DIRS})
target_link_directories(${name} PRIVATE ${CMOCKA_LIBRARY_DIRS})
target_link_libraries(${name} PRIVATE miniraft coroio ${CMOCKA_LIBRARIES})

add_test(NAME ${name} COMMAND ${CMAKE_CURRENT_BINARY_DIR}/${name})
set_tests_properties(${name} PROPERTIES ENVIRONMENT "CMOCKA_MESSAGE_OUTPUT=xml;CMOCKA_XML_FILE=${name}.xml")
endmacro()

if (CMOCKA_FOUND)
ut(test_raft test_raft.cpp)
ut(test_read_write test_read_write.cpp)
endif ()

0 comments on commit 001d696

Please sign in to comment.