stamenStatic Menu Generator |
git clone git://git.dimitrijedobrota.com/stamen.git |
Log | Files | Refs | README | LICENSE | HACKING | CONTRIBUTING | CODE_OF_CONDUCT | BUILDING | |
CMakeLists.txt (1531B)
1 cmake_minimum_required(VERSION 3.14) 2 3 project(stamenExamples CXX) 4 5 include(../cmake/project-is-top-level.cmake) 6 include(../cmake/folders.cmake) 7 if(PROJECT_IS_TOP_LEVEL) 8 find_package(stamen REQUIRED) 9 endif() 10 11 configure_file(demo_menu.conf demo_menu.conf COPYONLY) 12 configure_file(shared.h shared.h COPYONLY) 13 14 add_custom_target(run-examples) 15 16 add_custom_command( 17 OUTPUT demo_menu.hpp demo_menu.cpp 18 COMMAND stamen::exe -d test_display --cpp --namespace example demo_menu.conf 19 DEPENDS demo_menu.conf stamen::exe 20 WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" 21 COMMENT "Generating menu files" 22 ) 23 24 add_custom_command( 25 OUTPUT demo_menu.h demo_menu.c 26 COMMAND stamen::exe --c demo_menu.conf 27 DEPENDS demo_menu.conf stamen::exe 28 WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" 29 COMMENT "Generating cmenu files" 30 ) 31 32 function(add_example NAME EXT) 33 add_executable("${NAME}" "${NAME}.${EXT}") 34 target_include_directories("${NAME}" PRIVATE "${CMAKE_CURRENT_BINARY_DIR}") 35 target_link_libraries("${NAME}" PRIVATE stamen::stamen) 36 target_compile_features("${NAME}" PRIVATE cxx_std_20) 37 add_custom_target("run_${NAME}" COMMAND "${NAME}" demo_menu.conf VERBATIM) 38 add_dependencies("run_${NAME}" "${NAME}") 39 add_dependencies(run-examples "run_${NAME}") 40 endfunction() 41 42 add_example(example_c c) 43 target_sources(example_c PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/demo_menu.c") 44 45 add_example(example_cpp cpp) 46 target_sources(example_cpp PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/demo_menu.cpp") 47 48 add_example(dynamic cpp) 49 50 add_folders(Example)