2022-02-07 09:46:28 +01:00
|
|
|
cmake_minimum_required(VERSION 3.5)
|
|
|
|
|
|
|
|
project(elysius NONE)
|
|
|
|
|
2022-02-08 19:43:20 +01:00
|
|
|
option(BUILD_MENU "Add the Main Menu" ON)
|
|
|
|
option(BUILD_CSTN "Include constants collection" ON)
|
|
|
|
option(BUILD_CHIM "Include chemical equations analyser" ON)
|
|
|
|
option(BUILD_PRDQ "Include periodic elements table" ON)
|
|
|
|
option(BUILD_CONV "Include units conversion program" ON)
|
|
|
|
option(BUILD_ELEC "Include electronic circuits solver" ON)
|
2022-02-07 11:52:39 +01:00
|
|
|
|
|
|
|
add_subdirectory(srcs)
|
|
|
|
|
2022-02-08 19:43:20 +01:00
|
|
|
if(BUILD_CSTN)
|
|
|
|
set(DEFINITION "${DEFINITION} -DCONSTANT")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if(BUILD_CHIM)
|
|
|
|
set(DEFINITION "${DEFINITION} -DCHEMISTRY")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if(BUILD_PRDQ)
|
|
|
|
set(DEFINITION "${DEFINITION} -DPERIODIC")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if(BUILD_CONV)
|
|
|
|
set(DEFINITION "${DEFINITION} -DCONVERT")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if(BUILD_ELEC)
|
|
|
|
set(DEFINITION "${DEFINITION} -DCIRCUIT")
|
|
|
|
endif()
|
|
|
|
|
2022-02-07 09:46:28 +01:00
|
|
|
add_custom_target(menu ALL)
|
2022-02-07 11:52:39 +01:00
|
|
|
find_program(FOO_EXECUTABLE foo)
|
|
|
|
function(preprocess_foo out_var)
|
|
|
|
set(result)
|
|
|
|
foreach(in_f ${ARGN})
|
|
|
|
add_custom_command(
|
|
|
|
PRE_BUILD
|
|
|
|
TARGET menu
|
2022-02-08 19:43:20 +01:00
|
|
|
COMMAND cd ${PROJECT_SOURCE_DIR} && ./pithon.sh srcs/${in_f} ${DEFINITION}
|
2022-02-07 11:52:39 +01:00
|
|
|
DEPENDS srcs/${in_f}
|
|
|
|
COMMENT "Creating preprocessed foo file ${in_f}"
|
|
|
|
VERBATIM
|
|
|
|
)
|
|
|
|
list(APPEND result ${out_f})
|
|
|
|
endforeach()
|
|
|
|
set(${out_var} "${result}" PARENT_SCOPE)
|
|
|
|
endfunction()
|
|
|
|
|
|
|
|
preprocess_foo(prep_files ${SOURCEFILES})
|