TCM 1.1.0
A CMake module to reduce boilerplate
Loading...
Searching...
No Matches
Utility

TCM module provides standalone utility functions.

tcm_target_copy_dll()

Copy files and folders to destination folder.

tcm_target_copy_dll(<target> FROM <target_dependency>) #my_lib is a shared library

Example

Full example available here tests/shared_static/CMakeLists.txt.

add_executable(test_shared main.cpp)
target_link_libraries(test_shared PRIVATE my_lib)
tcm_target_copy_dll(test_shared FROM my_lib) #my_lib is a shared library

tcm_target_options()

Add homonym compile define if option is ON.

tcm_target_options (
<target>
<OPTIONS> [options...]
)

Example

Full example available here tests/utility/CMakeLists.txt.

option(OPTION_A "A test option" ON)
option(OPTION_B "A test option" OFF)
option(OPTION_C "A test option" ON)
add_executable(test_utility main.cpp)
tcm_target_options(test_utility OPTIONS OPTION_A OPTION_B OPTION_C)
#-DOPTION_A -DOPTION_C are added to compile definitions.

tcm_target_copy_assets()

Copy files and folders to destination a folder relative to target runtime output dir.

tcm_target_copy_assets (
<target>
[OUTPUT_DIR <dir> # Default to assets/
[FILES <file_or_dir>... ] # Files to copy
)

OUTPUT_DIR must be a relative path.

Example

Full example available here tests/utility/CMakeLists.txt.

# root/
# CMakeLists.txt
# copy_me_2.txt
# copy_me_3.txt
# assets/copy_me.txt
# assets/copy_me_1.txt
# assets/sub/copy_me.txt
# assets/sub/copy_me_1.txt
# assets/sub_1/copy_me.txt
# assets/sub_1/copy_me_1.txt
tcm_target_copy_assets(test_utility
FILES copy_me_2.txt copy_me_3.txt assets/sub assets/sub_1 assets
# Could be only assets (here only for demonstration)
)

tcm_target_enable_optimisation_flags()

Enable optimisation flags for target (speed for desktop, size for web) for RELEASE builds.

tcm_target_enable_optimisation_flags (<target>)

tcm_target_enable_warning_flags()

Enable warnings flags for target.

tcm_target_enable_warning_flags (<target>)