mirror of
https://github.com/ByteWelder/Tactility.git
synced 2026-02-18 10:53:17 +00:00
30 lines
984 B
CMake
30 lines
984 B
CMake
if (COMMAND tactility_add_module)
|
|
return()
|
|
endif()
|
|
|
|
macro(tactility_add_module NAME)
|
|
set(options)
|
|
set(oneValueArgs)
|
|
set(multiValueArgs SRCS INCLUDE_DIRS PRIV_INCLUDE_DIRS REQUIRES PRIV_REQUIRES)
|
|
cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
|
|
|
if (DEFINED ENV{ESP_IDF_VERSION})
|
|
idf_component_register(
|
|
SRCS ${ARG_SRCS}
|
|
INCLUDE_DIRS ${ARG_INCLUDE_DIRS}
|
|
PRIV_INCLUDE_DIRS ${ARG_PRIV_INCLUDE_DIRS}
|
|
REQUIRES ${ARG_REQUIRES}
|
|
PRIV_REQUIRES ${ARG_PRIV_REQUIRES}
|
|
)
|
|
else()
|
|
add_library(${NAME} OBJECT)
|
|
target_sources(${NAME} PRIVATE ${ARG_SRCS})
|
|
target_include_directories(${NAME}
|
|
PRIVATE ${ARG_PRIV_INCLUDE_DIRS}
|
|
PUBLIC ${ARG_INCLUDE_DIRS}
|
|
)
|
|
target_link_libraries(${NAME} PUBLIC ${ARG_REQUIRES})
|
|
target_link_libraries(${NAME} PRIVATE ${ARG_PRIV_REQUIRES})
|
|
endif()
|
|
endmacro()
|