mirror of
https://github.com/projectM-visualizer/projectm.git
synced 2026-02-04 12:15:35 +00:00
Use PUBLIC_HEADER CMake target property to install API headers
This commit is contained in:
@ -1,8 +1,19 @@
|
||||
add_library(projectM_api INTERFACE)
|
||||
|
||||
target_sources(projectM_api
|
||||
PRIVATE
|
||||
configure_file(version.h.in "${CMAKE_CURRENT_BINARY_DIR}/include/projectM-4/version.h" @ONLY)
|
||||
|
||||
include(GenerateExportHeader)
|
||||
|
||||
set(PROJECTM_EXPORT_HEADER "${CMAKE_CURRENT_BINARY_DIR}/include/projectM-4/projectM_export.h")
|
||||
|
||||
generate_export_header(projectM_api
|
||||
BASE_NAME projectM
|
||||
EXPORT_FILE_NAME "${PROJECTM_EXPORT_HEADER}"
|
||||
)
|
||||
|
||||
set(PROJECTM_PUBLIC_HEADERS
|
||||
"${PROJECTM_EXPORT_HEADER}"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/include/projectM-4/version.h"
|
||||
include/projectM-4/audio.h
|
||||
include/projectM-4/callbacks.h
|
||||
include/projectM-4/core.h
|
||||
@ -15,9 +26,15 @@ target_sources(projectM_api
|
||||
include/projectM-4/user_sprites.h
|
||||
)
|
||||
|
||||
target_sources(projectM_api
|
||||
PRIVATE
|
||||
${PROJECTM_PUBLIC_HEADERS}
|
||||
)
|
||||
|
||||
set_target_properties(projectM_api PROPERTIES
|
||||
EXPORT_NAME API
|
||||
FOLDER libprojectM
|
||||
PUBLIC_HEADER "${PROJECTM_PUBLIC_HEADERS}"
|
||||
)
|
||||
|
||||
target_include_directories(projectM_api
|
||||
@ -27,17 +44,6 @@ target_include_directories(projectM_api
|
||||
"$<INSTALL_INTERFACE:${PROJECTM_INCLUDE_DIR}>"
|
||||
)
|
||||
|
||||
configure_file(version.h.in "${CMAKE_CURRENT_BINARY_DIR}/include/projectM-4/version.h" @ONLY)
|
||||
|
||||
include(GenerateExportHeader)
|
||||
|
||||
set(PROJECTM_EXPORT_HEADER "${CMAKE_CURRENT_BINARY_DIR}/include/projectM-4/projectM_export.h")
|
||||
|
||||
generate_export_header(projectM_api
|
||||
BASE_NAME projectM
|
||||
EXPORT_FILE_NAME "${PROJECTM_EXPORT_HEADER}"
|
||||
)
|
||||
|
||||
add_library(libprojectM::API ALIAS projectM_api)
|
||||
|
||||
|
||||
@ -51,16 +57,4 @@ if(ENABLE_INSTALL)
|
||||
PUBLIC_HEADER DESTINATION "${PROJECTM_INCLUDE_DIR}/projectM-4" COMPONENT Devel
|
||||
)
|
||||
|
||||
install(FILES
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/include/projectM-4/projectM_export.h"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/include/projectM-4/version.h"
|
||||
DESTINATION "${PROJECTM_INCLUDE_DIR}/projectM-4"
|
||||
COMPONENT Devel
|
||||
)
|
||||
|
||||
install(DIRECTORY include/projectM-4
|
||||
DESTINATION "${PROJECTM_INCLUDE_DIR}"
|
||||
COMPONENT Devel
|
||||
)
|
||||
|
||||
endif()
|
||||
@ -2,15 +2,10 @@ if(NOT ENABLE_PLAYLIST)
|
||||
return()
|
||||
endif()
|
||||
|
||||
add_library(projectM_playlist_main OBJECT
|
||||
Filter.cpp
|
||||
Filter.hpp
|
||||
Item.cpp
|
||||
Item.hpp
|
||||
Playlist.cpp
|
||||
Playlist.hpp
|
||||
PlaylistCWrapper.cpp
|
||||
PlaylistCWrapper.hpp
|
||||
set(PROJECTM_PLAYLIST_EXPORT_HEADER "${CMAKE_CURRENT_BINARY_DIR}/include/projectM-4/projectM_playlist_export.h")
|
||||
|
||||
set(PROJECTM_PLAYLIST_PUBLIC_HEADERS
|
||||
"${PROJECTM_PLAYLIST_EXPORT_HEADER}"
|
||||
api/projectM-4/playlist.h
|
||||
api/projectM-4/playlist_callbacks.h
|
||||
api/projectM-4/playlist_core.h
|
||||
@ -21,6 +16,18 @@ add_library(projectM_playlist_main OBJECT
|
||||
api/projectM-4/playlist_types.h
|
||||
)
|
||||
|
||||
add_library(projectM_playlist_main OBJECT
|
||||
${PROJECTM_PLAYLIST_PUBLIC_HEADERS}
|
||||
Filter.cpp
|
||||
Filter.hpp
|
||||
Item.cpp
|
||||
Item.hpp
|
||||
Playlist.cpp
|
||||
Playlist.hpp
|
||||
PlaylistCWrapper.cpp
|
||||
PlaylistCWrapper.hpp
|
||||
)
|
||||
|
||||
target_include_directories(projectM_playlist_main
|
||||
PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
|
||||
@ -45,6 +52,7 @@ set_target_properties(projectM_playlist PROPERTIES
|
||||
EXPORT_NAME playlist
|
||||
FOLDER libprojectM
|
||||
OUTPUT_NAME ${PROJECTM_LIBRARY_BASE_OUTPUT_NAME}-playlist
|
||||
PUBLIC_HEADER "${PROJECTM_PLAYLIST_PUBLIC_HEADERS}"
|
||||
)
|
||||
|
||||
target_include_directories(projectM_playlist
|
||||
@ -88,8 +96,6 @@ endif()
|
||||
|
||||
include(GenerateExportHeader)
|
||||
|
||||
set(PROJECTM_PLAYLIST_EXPORT_HEADER "${CMAKE_CURRENT_BINARY_DIR}/include/projectM-4/projectM_playlist_export.h")
|
||||
|
||||
generate_export_header(projectM_playlist
|
||||
BASE_NAME projectM_playlist
|
||||
EXPORT_FILE_NAME "${PROJECTM_PLAYLIST_EXPORT_HEADER}"
|
||||
@ -107,17 +113,6 @@ if(ENABLE_INSTALL)
|
||||
PUBLIC_HEADER DESTINATION "${PROJECTM_INCLUDE_DIR}/projectM-4" COMPONENT Devel
|
||||
)
|
||||
|
||||
install(FILES
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/include/projectM-4/projectM_playlist_export.h"
|
||||
DESTINATION "${PROJECTM_INCLUDE_DIR}/projectM-4"
|
||||
COMPONENT Devel
|
||||
)
|
||||
|
||||
install(DIRECTORY api/projectM-4
|
||||
DESTINATION "${PROJECTM_INCLUDE_DIR}"
|
||||
COMPONENT Devel
|
||||
)
|
||||
|
||||
|
||||
# For use from an installed package (system install, vcpkg, homebrew etc.)
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
Reference in New Issue
Block a user