From c194099efce62192e9cba79a1968d531ea799212 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Wed, 4 Dec 2013 17:01:35 +0100 Subject: [PATCH] improved examples.sublevel --- examples/cmdline_static/CMakeLists.txt | 49 ++++++++++++++++++++------ 1 file changed, 39 insertions(+), 10 deletions(-) diff --git a/examples/cmdline_static/CMakeLists.txt b/examples/cmdline_static/CMakeLists.txt index 815e92a7d31..5bf0c09c491 100644 --- a/examples/cmdline_static/CMakeLists.txt +++ b/examples/cmdline_static/CMakeLists.txt @@ -15,6 +15,18 @@ # along with this program. If not, see . +##### Give a message about the process ##### +STRING( REGEX REPLACE ".*/" "" _EXAMPLE "${CMAKE_CURRENT_SOURCE_DIR}" ) +MESSAGE( STATUS "Generating documented examples for ${_EXAMPLE}") + + +##### Determine static or modular type ##### +SET( _EXAMPLE_TYPE "modular" ) +IF( "${CMAKE_CURRENT_SOURCE_DIR}" MATCHES ".*static$" ) + SET( _EXAMPLE_TYPE "static" ) +ENDIF( "${CMAKE_CURRENT_SOURCE_DIR}" MATCHES ".*static$" ) + + ##### Create a list with all examples in current dir ##### FOREACH( _EXAMPLE_EXT ${${PROJECT_VAR_PREFIX}EXAMPLES_EXT} ) FILE( GLOB _EXAMPLES_TEMP "${CMAKE_CURRENT_SOURCE_DIR}/*.${_EXAMPLE_EXT}" ) @@ -22,30 +34,47 @@ FOREACH( _EXAMPLE_EXT ${${PROJECT_VAR_PREFIX}EXAMPLES_EXT} ) ENDFOREACH( _EXAMPLE_EXT ${${PROJECT_VAR_PREFIX}EXAMPLES_EXT} ) -##### ##### +##### Generate documentated examples ##### FOREACH( _EXAMPLE ${_EXAMPLES} ) - STRING( REGEX REPLACE "^.*\\." "" _EXAMPLE_EXT "${_EXAMPLE}" ) - STRING( REGEX REPLACE "^${CMAKE_CURRENT_SOURCE_DIR}/" "" _EXAMPLE "${_EXAMPLE}" ) + SET( _DOCUMENTATION "" ) - STRING( REGEX REPLACE "${_EXAMPLE_EXT}$" "txt" _EXAMPLE_DOC_FILE "${_EXAMPLE}" ) - STRING( TOUPPER _EXAMPLE_EXT "${_EXAMPLE_EXT}" ) - SET( _EXAMPLE_DOC_FILE "${${PROJECT_VAR_PREFIX}DESC_DIR}/${_EXAMPLE_DESC_FILE}" ) + STRING( REGEX REPLACE "^.*\\." "" + _EXAMPLE_EXT "${_EXAMPLE}" ) + STRING( REGEX REPLACE "^${CMAKE_CURRENT_SOURCE_DIR}/" "" + _EXAMPLE "${_EXAMPLE}" ) + + STRING( REGEX REPLACE "${_EXAMPLE_EXT}$" "txt" + _EXAMPLE_DOC_FILE "${_EXAMPLE}" ) + STRING( TOUPPER "${_EXAMPLE_EXT}" _EXAMPLE_EXT ) + SET( _EXAMPLE_DOC_FILE + "${${PROJECT_VAR_PREFIX}DESC_DIR}/${_EXAMPLE_TYPE}/${_EXAMPLE_DOC_FILE}" ) IF( EXISTS "${_EXAMPLE_DOC_FILE}" ) FILE( STRINGS "${_EXAMPLE_DOC_FILE}" _DOC_STRINGS ) FOREACH( _DOC_STRING ${_DOC_STRINGS} ) - SET( _DOCUMENTATION "${_DOCUMENTATION}${${_EXAMPLE_EXT}_COMMENT}${_DOC_STRING}\n" ) + SET( _DOCUMENTATION + "${_DOCUMENTATION}${${_EXAMPLE_EXT}_COMMENT}${_DOC_STRING}\n" ) ENDFOREACH( _DOC_STRING ${_DOC_STRINGS} ) ELSE( EXISTS "${_EXAMPLE_DOC_FILE}" ) - SET( _DOCUMENTATION "${${_EXAMPLE_EXT}_COMMENT}Not documented") + SET( _DOCUMENTATION "${${_EXAMPLE_EXT}_COMMENT}Not documented\n") ENDIF( EXISTS "${_EXAMPLE_DOC_FILE}" ) - - CONFIGURE_FILE( "${CMAKE_CURRENT_SOURCE_DIR}/${_EXAMPLE}" "${CMAKE_CURRENT_BINARY_DIR}/${_EXAMPLE}" @ONLY ) + + CONFIGURE_FILE( + "${CMAKE_CURRENT_SOURCE_DIR}/${_EXAMPLE}" + "${CMAKE_CURRENT_BINARY_DIR}/${_EXAMPLE}" + @ONLY ) + + IF( NOT EXISTS "${CMAKE_CURRENT_BINARY_DIR}/${_EXAMPLE}" ) + CONFIGURE_FILE( + "${CMAKE_CURRENT_SOURCE_DIR}/${_EXAMPLE}" + "${CMAKE_CURRENT_BINARY_DIR}/${_EXAMPLE}" + COPYONLY ) + ENDIF( NOT EXISTS "${CMAKE_CURRENT_BINARY_DIR}/${_EXAMPLE}" ) ENDFOREACH( _EXAMPLE ${_EXAMPLES} )