Compiles, needs some extra tweaking
This commit is contained in:
parent
4a9cc72b6a
commit
18e8d2c8ea
5 changed files with 193 additions and 0 deletions
68
CMakeLists.txt
Normal file
68
CMakeLists.txt
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
cmake_minimum_required(VERSION 3.16)
|
||||
project(microReticulumTbeam LANGUAGES C CXX)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# Portability shims
|
||||
#
|
||||
# microReticulum's CMake currently links against "msgpackc-cxx" and "MsgPack"
|
||||
# as if they were system libraries, which breaks on machines that don't have
|
||||
# those exact libs installed.
|
||||
#
|
||||
# Define shim targets so CMake treats them as targets (no "-l...").
|
||||
# If/when you want a real msgpack-cxx dependency, replace the shim with
|
||||
# FetchContent/find_package and link to that instead.
|
||||
# --------------------------------------------------------------------
|
||||
if(NOT TARGET msgpackc-cxx)
|
||||
add_library(msgpackc-cxx INTERFACE)
|
||||
endif()
|
||||
|
||||
if(NOT TARGET MsgPack)
|
||||
add_library(MsgPack INTERFACE)
|
||||
endif()
|
||||
|
||||
|
||||
# Pull in the microReticulum submodule build
|
||||
add_subdirectory(external/microReticulum)
|
||||
|
||||
# Provide DebugLog.h for microReticulum's MsgPack dependency
|
||||
#set(DEBUGLOG_DIR ${CMAKE_SOURCE_DIR}/external/DebugLog)
|
||||
|
||||
#if(TARGET ReticulumShared)
|
||||
# target_include_directories(ReticulumShared PUBLIC ${DEBUGLOG_DIR})
|
||||
#endif()
|
||||
|
||||
#if(TARGET ReticulumStatic)
|
||||
# target_include_directories(ReticulumStatic PUBLIC ${DEBUGLOG_DIR})
|
||||
#endif()
|
||||
|
||||
set(DEBUGLOG_DIR ${CMAKE_SOURCE_DIR}/external/DebugLog)
|
||||
set(ARX_TYPETRAITS_DIR ${CMAKE_SOURCE_DIR}/external/ArxTypeTraits)
|
||||
set(ARX_CONTAINER_DIR ${CMAKE_SOURCE_DIR}/external/ArxContainer)
|
||||
|
||||
if(TARGET ReticulumShared)
|
||||
target_include_directories(ReticulumShared PUBLIC
|
||||
${DEBUGLOG_DIR}
|
||||
${ARX_TYPETRAITS_DIR}
|
||||
${ARX_CONTAINER_DIR}
|
||||
)
|
||||
endif()
|
||||
|
||||
if(TARGET ReticulumStatic)
|
||||
target_include_directories(ReticulumStatic PUBLIC
|
||||
${DEBUGLOG_DIR}
|
||||
${ARX_TYPETRAITS_DIR}
|
||||
${ARX_CONTAINER_DIR}
|
||||
)
|
||||
endif()
|
||||
|
||||
# We only need the static library for host-side tooling.
|
||||
# The shared lib target requires system msgpack libs on some systems.
|
||||
if(TARGET ReticulumShared)
|
||||
set_target_properties(ReticulumShared PROPERTIES EXCLUDE_FROM_ALL YES)
|
||||
endif()
|
||||
|
||||
# Build our host-side tools
|
||||
add_subdirectory(tools)
|
||||
Loading…
Add table
Add a link
Reference in a new issue