ecbuild_add_executable

Add an executable with a given list of source files.

ecbuild_add_executable( TARGET <name>
                        SOURCES <source1> [<source2> ...]
                        [ SOURCES_GLOB <glob1> [<glob2> ...] ]
                        [ SOURCES_EXCLUDE_REGEX <regex1> [<regex2> ...] ]
                        [ OBJECTS <obj1> [<obj2> ...] ]
                        [ TEMPLATES <template1> [<template2> ...] ]
                        [ LIBS <library1> [<library2> ...] ]
                        [ INCLUDES <path1> [<path2> ...] ]
                        [ DEFINITIONS <definition1> [<definition2> ...] ]
                        [ PERSISTENT <file1> [<file2> ...] ]
                        [ GENERATED <file1> [<file2> ...] ]
                        [ DEPENDS <target1> [<target2> ...] ]
                        [ CONDITION <condition> ]
                        [ PROPERTIES <prop1> <val1> [<prop2> <val2> ...] ]
                        [ NOINSTALL ]
                        [ VERSION <version> | AUTO_VERSION ]
                        [ CFLAGS <flag1> [<flag2> ...] ]
                        [ CXXFLAGS <flag1> [<flag2> ...] ]
                        [ FFLAGS <flag1> [<flag2> ...] ]
                        [ LINKER_LANGUAGE <lang> ]
                        [ OUTPUT_NAME <name> ] )

Options

TARGET : required
target name
SOURCES : required
list of source files
SOURCES_GLOB : optional
search pattern to find source files to compile (note: not recommend according to CMake guidelines) it is usually better to explicitly list the source files in the CMakeList.txt
SOURCES_EXCLUDE_REGEX : optional
search pattern to exclude source files from compilation, applies o the results of SOURCES_GLOB
OBJECTS : optional
list of object libraries to add to this target
TEMPLATES : optional
list of files specified as SOURCES which are not to be compiled separately (these are commonly template implementation files included in a header)
LIBS : optional
list of libraries to link against (CMake targets or external libraries)
INCLUDES : optional
list of paths to add to include directories
DEFINITIONS : optional
list of definitions to add to preprocessor defines
PERSISTENT : optional
list of persistent layer object files
GENERATED : optional
list of files to mark as generated (sets GENERATED source file property)
DEPENDS : optional
list of targets to be built before this target
CONDITION : optional
conditional expression which must evaluate to true for this target to be built (must be valid in a CMake if statement)
PROPERTIES : optional
custom properties to set on the target
NOINSTALL : optional
do not install the executable
VERSION : optional, AUTO_VERSION or LIBS_VERSION is used if not specified
version to use as executable version
AUTO_VERSION : optional, ignored if VERSION is specified
automatically version the executable with the package version
CFLAGS : optional
list of C compiler flags to use for all C source files
CXXFLAGS : optional
list of C++ compiler flags to use for all C++ source files
FFLAGS : optional
list of Fortran compiler flags to use for all Fortran source files
LINKER_LANGUAGE : optional
sets the LINKER_LANGUAGE property on the target
OUTPUT_NAME : optional
sets the OUTPUT_NAME property on the target