| 1234567891011121314151617181920212223242526 |
- # Adding Usage Requirements for Library #
- Usage requirements allow for far better control over a library / executable's
- link and include line. While also giving more control over the transitive
- property of targets inside CMake. The primary commands that leverage usage
- requirements are:
- - target_compile_definitions
- - target_compile_options
- - target_include_directories
- - target_link_libraries
- First up is MathFunctions. We first state that anybody linking to MathFunctions
- needs to include the current source directory, while MathFunctions itself
- doesn't. So this can become an INTERFACE usage requirement.
- Remember INTERFACE means things that consumers require but the producer doesn't.
- target_include_directories(MathFunctions
- INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})
- Now that we've specified usage requirements for MathFunctions we can safely remove
- our uses of the EXTRA_INCLUDES variable.
- Run cmake or cmake-gui to configure the project and then build it with your
- chosen build tool.
|