Add CMake interface library target

Projects using cglm as a header-only library needn’t build files under
src/. Provide a target which allows them to skip compiling them by

add_subdirectory(external/cglm EXCLUDE_FROM_ALL)
target_link_libraries(MyExe PRIVATE cglm_headers)
This commit is contained in:
Sundaram Ramaswamy
2021-03-25 17:47:43 +05:30
parent 405cda6ee9
commit 9e12908556

View File

@@ -93,6 +93,81 @@ target_include_directories(${PROJECT_NAME}
${CMAKE_CURRENT_SOURCE_DIR}/src
)
# Target for header-only usage
add_library(${PROJECT_NAME}_headers INTERFACE
include/cglm/affine-mat.h
include/cglm/affine.h
include/cglm/affine2d.h
include/cglm/applesimd.h
include/cglm/bezier.h
include/cglm/box.h
include/cglm/call.h
include/cglm/cam.h
include/cglm/cglm.h
include/cglm/color.h
include/cglm/common.h
include/cglm/curve.h
include/cglm/ease.h
include/cglm/euler.h
include/cglm/frustum.h
include/cglm/io.h
include/cglm/mat2.h
include/cglm/mat3.h
include/cglm/mat4.h
include/cglm/plane.h
include/cglm/project.h
include/cglm/quat.h
include/cglm/ray.h
include/cglm/sphere.h
include/cglm/struct.h
include/cglm/types-struct.h
include/cglm/types.h
include/cglm/util.h
include/cglm/vec2-ext.h
include/cglm/vec2.h
include/cglm/vec3-ext.h
include/cglm/vec3.h
include/cglm/vec4-ext.h
include/cglm/vec4.h
include/cglm/version.h
include/cglm/simd/arm.h
include/cglm/simd/avx/affine.h
include/cglm/simd/avx/mat4.h
include/cglm/simd/intrin.h
include/cglm/simd/neon/mat4.h
include/cglm/simd/sse2/affine.h
include/cglm/simd/sse2/mat2.h
include/cglm/simd/sse2/mat3.h
include/cglm/simd/sse2/mat4.h
include/cglm/simd/sse2/quat.h
include/cglm/simd/x86.h
include/cglm/struct/affine.h
include/cglm/struct/affine2d.h
include/cglm/struct/box.h
include/cglm/struct/cam.h
include/cglm/struct/color.h
include/cglm/struct/curve.h
include/cglm/struct/euler.h
include/cglm/struct/frustum.h
include/cglm/struct/io.h
include/cglm/struct/mat2.h
include/cglm/struct/mat3.h
include/cglm/struct/mat4.h
include/cglm/struct/plane.h
include/cglm/struct/project.h
include/cglm/struct/quat.h
include/cglm/struct/sphere.h
include/cglm/struct/vec2-ext.h
include/cglm/struct/vec2.h
include/cglm/struct/vec3-ext.h
include/cglm/struct/vec3.h
include/cglm/struct/vec4-ext.h
include/cglm/struct/vec4.h
)
target_include_directories(${PROJECT_NAME}_headers INTERFACE
${CMAKE_CURRENT_SOURCE_DIR}/include)
# Test Configuration
if(CGLM_USE_TEST)
include(CTest)