Skip to content

Commit 7f96b43

Browse files
committed
CMake: add LSLCMake functions to exported configuration
1 parent 2baef73 commit 7f96b43

File tree

3 files changed

+24
-20
lines changed

3 files changed

+24
-20
lines changed

CMakeLists.txt

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -229,32 +229,49 @@ endif()
229229
add_executable(lslver testing/lslver.c)
230230
target_link_libraries(lslver PRIVATE lsl)
231231

232+
include(CMakePackageConfigHelpers)
233+
write_basic_package_version_file(
234+
"${CMAKE_CURRENT_BINARY_DIR}/LSLConfigVersion.cmake"
235+
VERSION "${liblsl_VERSION_MAJOR}.${liblsl_VERSION_MINOR}.${liblsl_VERSION_PATCH}"
236+
COMPATIBILITY AnyNewerVersion
237+
)
238+
232239
install(TARGETS ${LSL_EXPORT_TARGETS}
233-
EXPORT LSLConfig
240+
EXPORT LSLTargets
234241
COMPONENT liblsl
235242
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
236243
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
237244
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
245+
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
238246
)
239247

240-
install(EXPORT LSLConfig #"${PROJECT_NAME}Config"
248+
export(EXPORT LSLTargets
249+
FILE "${CMAKE_CURRENT_BINARY_DIR}/LSLTargets.cmake"
250+
NAMESPACE LSL::
251+
)
252+
253+
install(EXPORT LSLTargets
254+
FILE LSLTargets.cmake
241255
COMPONENT liblsl
242256
NAMESPACE "LSL::"
243257
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/LSL
244258
)
259+
configure_file(cmake/LSLConfig.cmake "${CMAKE_CURRENT_BINARY_DIR}/LSLConfig.cmake" COPYONLY)
260+
configure_file(cmake/LSLCMake.cmake "${CMAKE_CURRENT_BINARY_DIR}/LSLCMake.cmake" COPYONLY)
261+
245262

246263
# install headers
247264
install(DIRECTORY include/
248265
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
249266
COMPONENT liblsl
250267
)
251268

252-
install(FILES LSLCMake.cmake
269+
install(FILES cmake/LSLCMake.cmake ${CMAKE_CURRENT_BINARY_DIR}/LSLConfig.cmake
253270
COMPONENT liblsl
254271
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/LSL
255272
)
256273

257-
include(LSLCMake.cmake)
274+
include(cmake/LSLCMake.cmake)
258275

259276
if(LSL_UNITTESTS)
260277
add_subdirectory(testing)

LSLCMake.cmake renamed to cmake/LSLCMake.cmake

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Common functions and settings for LSL
22

3-
message(STATUS "Included LSL CMake helpers, rev. 11")
3+
message(STATUS "Included LSL CMake helpers, rev. 12, ${CMAKE_CURRENT_LIST_DIR}")
44
option(LSL_DEPLOYAPPLIBS "Copy library dependencies (at the moment Qt + liblsl) to the installation dir" ON)
55

66
# set build type and default install dir if not done already
@@ -15,21 +15,6 @@ if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
1515
message(WARNING "CMAKE_INSTALL_PREFIX default initialized to ${CMAKE_INSTALL_PREFIX}")
1616
endif()
1717

18-
# Try to find the labstreaminglayer library and enable
19-
# the imported target LSL::lsl
20-
#
21-
# Use it with
22-
# target_link_libraries(your_target_app PRIVATE LSL::lsl)
23-
24-
if(TARGET lsl)
25-
add_library(LSL::lsl ALIAS lsl)
26-
message(STATUS "Found target lsl in current build tree")
27-
else()
28-
message(STATUS "Trying to find package LSL")
29-
list(APPEND CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR})
30-
find_package(LSL REQUIRED)
31-
endif()
32-
3318
# Generate folders for IDE targets (e.g., VisualStudio solutions)
3419
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
3520

cmake/LSLConfig.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
include("${CMAKE_CURRENT_LIST_DIR}/LSLTargets.cmake")
2+
include("${CMAKE_CURRENT_LIST_DIR}/LSLCMake.cmake")

0 commit comments

Comments
 (0)