Skip to content

Commit

Permalink
Create .cmake file to allow higher flexibility of end user
Browse files Browse the repository at this point in the history
  • Loading branch information
MaJerle committed Dec 9, 2023
1 parent b4130fc commit 29e34ff
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 30 deletions.
31 changes: 1 addition & 30 deletions lwjson/CMakeLists.txt
@@ -1,32 +1,3 @@
cmake_minimum_required(VERSION 3.22)

# Setup generic source files
set(lwjson_core_SRCS
${CMAKE_CURRENT_LIST_DIR}/src/lwjson/lwjson.c
${CMAKE_CURRENT_LIST_DIR}/src/lwjson/lwjson_stream.c
)

# Debug sources
set(lwjson_debug_SRCS
${CMAKE_CURRENT_LIST_DIR}/src/lwjson/lwjson_debug.c
)

# Setup include directories
set(lwjson_include_DIRS
${CMAKE_CURRENT_LIST_DIR}/src/include
)

# Register core library to the system
add_library(lwjson INTERFACE)
target_sources(lwjson PUBLIC ${lwjson_core_SRCS})
target_include_directories(lwjson INTERFACE ${lwjson_include_DIRS})

# Register lwjson debug module
add_library(lwjson_debug INTERFACE)
target_sources(lwjson_debug PUBLIC ${lwjson_debug_SRCS})
target_include_directories(lwjson_debug INTERFACE ${lwjson_include_DIRS})

# Create config file
if(DEFINED LWJSON_OPTS_DIR AND NOT EXISTS ${LWJSON_OPTS_DIR}/lwjson_opts.h)
configure_file(${CMAKE_CURRENT_LIST_DIR}/src/include/lwjson/lwjson_opts_template.h ${LWJSON_OPTS_DIR}/lwjson_opts.h COPYONLY)
endif()
include(${CMAKE_CURRENT_LIST_DIR}/library.cmake)
34 changes: 34 additions & 0 deletions lwjson/library.cmake
@@ -0,0 +1,34 @@
# Setup generic source files
set(lwjson_core_SRCS
${CMAKE_CURRENT_LIST_DIR}/src/lwjson/lwjson.c
${CMAKE_CURRENT_LIST_DIR}/src/lwjson/lwjson_stream.c
)

# Debug sources
set(lwjson_debug_SRCS
${CMAKE_CURRENT_LIST_DIR}/src/lwjson/lwjson_debug.c
)

# Setup include directories
set(lwjson_include_DIRS
${CMAKE_CURRENT_LIST_DIR}/src/include
)

# Register core library to the system
add_library(lwjson INTERFACE)
target_sources(lwjson PUBLIC ${lwjson_core_SRCS})
target_include_directories(lwjson INTERFACE ${lwjson_include_DIRS})
target_compile_options(lwjson PRIVATE ${LWJSON_COMPILE_OPTIONS})
target_compile_definitions(lwjson PRIVATE ${LWJSON_COMPILE_DEFINITIONS})

# Register lwjson debug module
add_library(lwjson_debug INTERFACE)
target_sources(lwjson_debug PUBLIC ${lwjson_debug_SRCS})
target_include_directories(lwjson_debug INTERFACE ${lwjson_include_DIRS})
target_compile_options(lwjson_debug PRIVATE ${LWJSON_COMPILE_OPTIONS})
target_compile_definitions(lwjson_debug PRIVATE ${LWJSON_COMPILE_DEFINITIONS})

# Create config file
if(DEFINED LWJSON_OPTS_DIR AND NOT EXISTS ${LWJSON_OPTS_DIR}/lwjson_opts.h)
configure_file(${CMAKE_CURRENT_LIST_DIR}/src/include/lwjson/lwjson_opts_template.h ${LWJSON_OPTS_DIR}/lwjson_opts.h COPYONLY)
endif()

0 comments on commit 29e34ff

Please sign in to comment.