@@ -5,8 +5,8 @@ set(CMAKE_CXX_STANDARD 23)
55set (CMAKE_CXX_STANDARD_REQUIRED YES )
66
77############################################
8- # Conan-generated toolchain setup
98
9+ # Conan-generated toolchain setup
1010include (${CMAKE_BINARY_DIR} /conan_toolchain.cmake OPTIONAL RESULT_VARIABLE _found_toolchain )
1111if (_found_toolchain)
1212 message (STATUS "Conan toolchain included" )
@@ -22,14 +22,13 @@ find_package(libsodium REQUIRED)
2222find_package (spdlog REQUIRED )
2323
2424############################################
25- # Collect source files
2625
26+ # Collect source files
2727file (GLOB_RECURSE ALL_SOURCES "src/*.cpp" )
2828# Separate main.cpp from the rest of the sources
2929list (FILTER ALL_SOURCES EXCLUDE REGEX ".*main\\ .cpp$" )
3030set (SOURCES ${ALL_SOURCES} )
3131
32- ############################################
3332# Create core logic library
3433add_library (traderlib STATIC ${SOURCES} )
3534
@@ -40,20 +39,33 @@ target_link_libraries(traderlib PRIVATE --coverage)
4039
4140# Link dependencies to the library (so both exe and tests get them)
4241target_link_libraries (traderlib PUBLIC
43- concurrentqueue::concurrentqueue
44- ftxui::ftxui
45- OpenSSL::SSL
46- OpenSSL::Crypto
47- quickfix::quickfix
48- libsodium::libsodium
49- spdlog::spdlog
42+ concurrentqueue::concurrentqueue
43+ ftxui::ftxui
44+ OpenSSL::SSL
45+ OpenSSL::Crypto
46+ quickfix::quickfix
47+ libsodium::libsodium
48+ spdlog::spdlog
5049)
5150
5251############################################
5352# Create main executable
5453add_executable (tradercpp "src/main.cpp" )
5554target_link_libraries (tradercpp PRIVATE traderlib )
5655
56+ ############################################
57+
58+ # Run clang-format on all source files before building
59+ add_custom_command (
60+ TARGET tradercpp
61+ PRE_BUILD
62+ COMMAND clang-format -i ${CMAKE_SOURCE_DIR} /src/**/*.cpp ${CMAKE_SOURCE_DIR} /src/**/*.h
63+ && clang-format -i ${CMAKE_SOURCE_DIR} /tests/**/*.cpp ${CMAKE_SOURCE_DIR} /tests/**/*.h
64+ COMMENT "Running clang-format on all source and header files"
65+ )
66+
67+ # set(CMAKE_CXX_CLANG_TIDY "clang-tidy;-config-file=.clang-tidy;-checks=*")
68+
5769############################################
5870# Enable `ctest`
5971enable_testing ()
0 commit comments