Skip to content

Commit

Permalink
improved examples.sublevel
Browse files Browse the repository at this point in the history
  • Loading branch information
Björn Esser committed Dec 30, 2013
1 parent 1e11679 commit c194099
Showing 1 changed file with 39 additions and 10 deletions.
49 changes: 39 additions & 10 deletions examples/cmdline_static/CMakeLists.txt
Expand Up @@ -15,37 +15,66 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.


##### 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}" )
LIST( APPEND _EXAMPLES ${_EXAMPLES_TEMP} )
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} )

0 comments on commit c194099

Please sign in to comment.