1+ option (TARGET_STM "Build for STM32F0 using ARM toolchain" OFF )
2+
13cmake_minimum_required (VERSION 3.14)
24project (MotorControllerLib)
35
46set (CMAKE_CXX_STANDARD 17)
57set (CMAKE_CXX_STANDARD_REQUIRED ON )
68
9+ if (TARGET_STM)
10+ message (STATUS "Configuring build for STM32F0" )
11+ set (CMAKE_TOOLCHAIN_FILE "${CMAKE_SOURCE_DIR} /cmake/arm-gcc-toolchain.cmake" )
12+ set (CMAKE_CXX_STANDARD 17)
13+ else ()
14+ message (STATUS "Configuring build for native Linux" )
15+ set (CMAKE_CXX_STANDARD 17)
16+ set (CMAKE_CXX_STANDARD_REQUIRED ON )
17+ endif ()
18+
719# === Library Target ===
820add_library (Odrive STATIC
921 src/lib.cpp
@@ -17,34 +29,37 @@ install(TARGETS Odrive
1729
1830install (DIRECTORY inc/ DESTINATION include )
1931
20- # === Enable Testing ===
21- include (CTest) # enables BUILD_TESTING option
22- if (BUILD_TESTING)
32+ if (NOT CMAKE_CROSSCOMPILING )
33+ # === Enable Testing ===
34+ include (CTest) # enables BUILD_TESTING option
35+ if (BUILD_TESTING)
2336
24- # Fetch GoogleTest
25- include (FetchContent)
26- FetchContent_Declare(
27- googletest
28- URL https://github.com/google/googletest/archive/03597a01ee50ed33e9dfd640b249b4be3799d395.zip
29- )
30- set (gtest_force_shared_crt ON CACHE BOOL "" FORCE)
31- FetchContent_MakeAvailable(googletest)
37+ # Fetch GoogleTest
38+ include (FetchContent)
39+ FetchContent_Declare(
40+ googletest
41+ URL https://github.com/google/googletest/archive/03597a01ee50ed33e9dfd640b249b4be3799d395.zip
42+ )
43+ set (gtest_force_shared_crt ON CACHE BOOL "" FORCE)
44+ FetchContent_MakeAvailable(googletest)
3245
33- # === Test Executable ===
34- add_executable (utils_test
35- test /test_can_header.cpp
36- test /test_can_msg.cpp
37- )
46+ # === Test Executable ===
47+ add_executable (utils_test
48+ test /test_can_header.cpp
49+ test /test_can_msg.cpp
50+ )
3851
39- target_include_directories (utils_test PRIVATE ${CMAKE_SOURCE_DIR} /inc)
52+ target_include_directories (utils_test PRIVATE ${CMAKE_SOURCE_DIR} /inc)
4053
41- target_link_libraries (utils_test
42- PRIVATE
43- Odrive # <-- your library
44- GTest::gtest_main
45- )
54+ target_link_libraries (utils_test
55+ PRIVATE
56+ Odrive # <-- your library
57+ GTest::gtest_main
58+ )
4659
47- include (GoogleTest)
48- gtest_discover_tests(utils_test)
60+ include (GoogleTest)
61+ gtest_discover_tests(utils_test)
4962
50- endif ()
63+ endif ()
64+
65+ endif ()
0 commit comments