From 3840468e36bc24ea7092cc3762c06e880dbdaed6 Mon Sep 17 00:00:00 2001 From: Marius Greuel Date: Sun, 26 Dec 2021 16:46:15 +0100 Subject: [PATCH] Improve CMake project to filter conditional sections --- src/CMakeLists.txt | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 7860d281..6dfebd28 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -329,8 +329,22 @@ message(STATUS "----------------------") # Configure files # ===================================== +macro(configure_option option) + if(${${option}}) + string(REGEX REPLACE "(.*)@${option}_BEGIN@(.*)@${option}_END@(.*)" "\\1\\2\\3" conf_file "${conf_file}") + else() + string(REGEX REPLACE "(.*)@${option}_BEGIN@(.*)@${option}_END@(.*)" "\\1\\3" conf_file "${conf_file}") + endif() +endmacro() + +file(READ avrdude.conf.in conf_file) +configure_option(HAVE_PARPORT) +configure_option(HAVE_LINUXGPIO) +configure_option(HAVE_LINUXSPI) +file(WRITE "${PROJECT_BINARY_DIR}/avrdude.conf.in" "${conf_file}") + configure_file(cmake_config.h.in ac_cfg.h) -configure_file(avrdude.conf.in avrdude.conf) +configure_file("${PROJECT_BINARY_DIR}/avrdude.conf.in" avrdude.conf) configure_file(avrdude.spec.in avrdude.spec) if(WIN32) configure_file(windows.rc.in windows.rc)