summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2019-12-22 11:30:18 -0800
committerJohn MacFarlane <jgm@berkeley.edu>2020-01-02 22:58:05 -0700
commitb6c73d8b5c23000b1c548a01db4019e0a3a53c02 (patch)
tree5be686c83a8fb081888ac1656f15aae6dbca77d0
parent57a8094934ea2b73acce831fe2ffb030496020f7 (diff)
build: use target properties for include paths
This configures the target to setup the include paths publicly for the library targets in the build interface. This enables uses of the targets in the build tree without having to specify the include directories. This is particularly useful for use in the export targets, but also simplifies the rules for the API tests. The install interface does not need the include directories as `cmark.h` is installed into `include` which is a default include path.
-rw-r--r--api_test/CMakeLists.txt4
-rw-r--r--src/CMakeLists.txt8
2 files changed, 8 insertions, 4 deletions
diff --git a/api_test/CMakeLists.txt b/api_test/CMakeLists.txt
index b1c8499..f868d01 100644
--- a/api_test/CMakeLists.txt
+++ b/api_test/CMakeLists.txt
@@ -4,10 +4,6 @@ add_executable(api_test
harness.h
main.c
)
-include_directories(
- ${PROJECT_SOURCE_DIR}/src
- ${PROJECT_BINARY_DIR}/src
-)
if(CMARK_SHARED)
target_link_libraries(api_test libcmark)
else()
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 257fbe0..c315bca 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -72,6 +72,10 @@ if (CMARK_SHARED)
# Include minor version and patch level in soname for now.
SOVERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}
VERSION ${PROJECT_VERSION})
+ target_include_directories(${LIBRARY} INTERFACE
+ $<INSTALL_INTERFACE:include>
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>)
generate_export_header(${LIBRARY}
BASE_NAME ${PROJECT_NAME})
@@ -86,6 +90,10 @@ if (CMARK_STATIC)
OUTPUT_NAME "cmark$<$<BOOL:MSVC>:_static>"
POSITION_INDEPENDENT_CODE ON
VERSION ${PROJECT_VERSION})
+ target_include_directories(${STATICLIBRARY} INTERFACE
+ $<INSTALL_INTERFACE:include>
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>)
if (NOT CMARK_SHARED)
generate_export_header(${STATICLIBRARY}