Files
property_tree/examples/CMakeLists.txt
2023-11-15 03:36:20 +02:00

42 lines
1.6 KiB
CMake

#
# Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.com)
# Copyright (c) 2021 Richard Hodges (hodges.r@gmail.com)
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#
# Official repository: https://github.com/boostorg/json
#
source_group("test" FILES
custom_data_type.cpp
debug_settings.cpp
empty_ptree_trick.cpp
info_grammar_spirit.cpp
speed_test.cpp
)
function(add_example)
cmake_parse_arguments("addex" "" "NAME" "SRCS;DEPS" ${ARGN})
if("${addex_NAME}" STREQUAL "")
message(SEND_ERROR "add_example: no NAME")
return()
endif()
if("${addex_SRCS}" STREQUAL "")
message(SEND_ERROR "add_example: no SRCS")
return()
endif()
#message(STATUS "add_example: ${addex_NAME} SRCS: ${addex_SRCS} DEPS: ${addex_DEPS}")
add_executable("${PROJECT_NAME}-example-${addex_NAME}"
${addex_SRCS})
set_property(TARGET "${PROJECT_NAME}-example-${addex_NAME}" PROPERTY FOLDER "example")
target_link_libraries("${PROJECT_NAME}-example-${addex_NAME}" PRIVATE ${addex_DEPS})
endfunction()
add_example(NAME custom_data_type SRCS custom_data_type.cpp DEPS Boost::property_tree)
add_example(NAME debug_settings SRCS debug_settings.cpp DEPS Boost::property_tree Boost::foreach)
configure_file(debug_settings.xml debug_settings.xml COPYONLY)
add_example(NAME empty_ptree_trick SRCS empty_ptree_trick.cpp DEPS Boost::property_tree)
add_example(NAME info_grammar_spirit SRCS info_grammar_spirit.cpp DEPS Boost::property_tree)
add_example(NAME speed_test SRCS speed_test.cpp DEPS Boost::property_tree Boost::format)