Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
CMakeLists.txt 1.39 KiB
# ~~~
# This file is part of the dune-gdt project:
#   https://github.com/dune-community/dune-gdt
# Copyright 2010-2018 dune-gdt developers and contributors. All rights reserved.
# License: Dual licensed as BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause)
#      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
#          with "runtime exception" (http://www.dune-project.org/license.html)
# Authors:
#   Felix Schindler (2012 - 2013, 2018)
#   René Fritze     (2018)
#   Tobias Leibner  (2018)
# ~~~

macro(cleanup_target_name arg)
  string(REPLACE ${PROJECT_SOURCE_DIR}
                 ""
                 targname
                 ${arg})
  string(REPLACE ".cc"
                 ""
                 targname
                 ${targname})
  string(REGEX
         REPLACE "/"
                 "__"
                 targname
                 ${targname})
  string(REGEX
         REPLACE "^__"
                 ""
                 targname
                 ${targname})
endmacro(cleanup_target_name)

file(GLOB_RECURSE example_sources "${CMAKE_CURRENT_SOURCE_DIR}/*.cc")
foreach(source ${example_sources}) # do some name conversion
  set(targname ${source})
  cleanup_target_name(${targname})
  add_executable(${targname} ${source})
  list(APPEND examples_targets ${targname})
endforeach(source ${example_sources})

add_custom_target(examples)
add_dependencies(examples ${examples_targets})