cmake_minimum_required(VERSION 3.13) #################################### # common/CMakeLists.txt set(common_sources) set(common_defines) set(common_includes) set(common_libraries) if(${MAKE_TOOLS}) set(common_sources linux/little_big_endian.h linux/glue.cpp linux/glue.h linux/tempmem.cpp) set(common_includes ${CMAKE_CURRENT_LIST_DIR}/linux) else() set(common_sources pico/little_big_endian.h pico/glue.cpp pico/glue.h system_clock.h system_clock.cpp LoadSensor.h LoadSensor.cpp utilities.h utilities.cpp Logger.h Logger.cpp stack_guard.h stack_guard.cpp Dispatcher.h Dispatcher.cpp pico/tempmem.cpp) set(common_includes ${CMAKE_CURRENT_LIST_DIR}/pico) set(common_libraries pico_multicore hardware_pwm pico_stdlib) endif() add_library(kilipili_common STATIC ${common_sources} cdefs.h standard_types.h no_copy_move.h basic_math.h Queue.h RCPtr.h algorithms.h sdbm_hash.h DiskLight.h Led.h malloc.h #malloc.cpp <-- must be included in add_executable() in main CMakeLists.txt directly tempmem.h cstrings.h cstrings.cpp geometry.h geometry.cpp Xoshiro256.cpp Xoshiro256.h Xoshiro128.cpp Xoshiro128.h LzhDecoder.cpp LzhDecoder.h Trace.cpp Trace.h common.h ) target_compile_definitions(kilipili_common PUBLIC ${common_defines} ) target_include_directories(kilipili_common PUBLIC ${common_includes} ${CMAKE_CURRENT_LIST_DIR} ${CMAKE_CURRENT_LIST_DIR}/.. ) target_link_libraries(kilipili_common PUBLIC ${common_libraries} )