@@ -31,6 +31,12 @@ cmake_dependent_option(PUGIXML_BUILD_TESTS
3131set (PUGIXML_BUILD_DEFINES CACHE STRING "Build defines for custom options" )
3232separate_arguments (PUGIXML_BUILD_DEFINES)
3333
34+ # Public headers
35+ set (PUGIXML_HEADERS
36+ ${PROJECT_SOURCE_DIR} /src/pugiconfig.hpp
37+ ${PROJECT_SOURCE_DIR} /src/pugixml.hpp
38+ )
39+
3440# Technically not needed for this file. This is builtin CMAKE global variable.
3541option (BUILD_SHARED_LIBS "Build shared instead of static library" OFF )
3642
@@ -106,7 +112,8 @@ set(libs)
106112if (BUILD_SHARED_LIBS )
107113 add_library (pugixml-shared SHARED
108114 ${PROJECT_SOURCE_DIR} /scripts/pugixml_dll.rc
109- ${PROJECT_SOURCE_DIR} /src/pugixml.cpp)
115+ ${PROJECT_SOURCE_DIR} /src/pugixml.cpp
116+ ${PUGIXML_HEADERS} )
110117 add_library (pugixml::shared ALIAS pugixml-shared)
111118 list (APPEND libs pugixml-shared)
112119 string (CONCAT pugixml.msvc $<OR :
@@ -135,7 +142,8 @@ endif()
135142
136143if (NOT BUILD_SHARED_LIBS OR PUGIXML_BUILD_SHARED_AND_STATIC_LIBS)
137144 add_library (pugixml-static STATIC
138- ${PROJECT_SOURCE_DIR} /src/pugixml.cpp)
145+ ${PROJECT_SOURCE_DIR} /src/pugixml.cpp
146+ ${PUGIXML_HEADERS} )
139147 add_library (pugixml::static ALIAS pugixml-static )
140148 list (APPEND libs pugixml-static )
141149
@@ -182,10 +190,17 @@ if (PUGIXML_BUILD_APPLE_FRAMEWORK)
182190 set_target_properties (${libs} PROPERTIES
183191 FRAMEWORK TRUE
184192 FRAMEWORK_VERSION ${PROJECT_VERSION}
185- XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER com.zeux.pugixml
186- MACOSX_FRAMEWORK_IDENTIFIER com.zeux.pugixml
193+ XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "github.com/zeux/pugixml"
194+ XCODE_ATTRIBUTE_INSTALL_PATH "@rpath"
195+ XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ""
196+ XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED "NO"
197+ XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO"
198+ PUBLIC_HEADER "${PUGIXML_HEADERS} "
199+ MACOSX_FRAMEWORK_IDENTIFIER "github.com/zeux/pugixml"
187200 MACOSX_FRAMEWORK_BUNDLE_VERSION ${PROJECT_VERSION}
188- MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR} )
201+ MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}
202+ MACOSX_RPATH TRUE
203+ )
189204endif ()
190205
191206configure_package_config_file(
@@ -249,7 +264,8 @@ if(PUGIXML_INSTALL)
249264 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${PUGIXML_LIBRARY_COMPONENT} ${namelink-component }
250265 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${PUGIXML_DEVELOPMENT_COMPONENT}
251266 INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ${versioned-dir}
252- FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT runtime OPTIONAL )
267+ FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT runtime OPTIONAL
268+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} )
253269
254270 install (EXPORT pugixml-targets
255271 NAMESPACE pugixml::
@@ -263,12 +279,8 @@ if(PUGIXML_INSTALL)
263279 install (FILES ${PROJECT_BINARY_DIR} /pugixml.pc
264280 DESTINATION ${CMAKE_INSTALL_LIBDIR} /pkgconfig COMPONENT ${PUGIXML_DEVELOPMENT_COMPONENT} )
265281
266- install (
267- FILES
268- "${PROJECT_SOURCE_DIR} /src/pugiconfig.hpp"
269- "${PROJECT_SOURCE_DIR} /src/pugixml.hpp"
270- DESTINATION
271- ${CMAKE_INSTALL_INCLUDEDIR} ${versioned-dir} COMPONENT ${PUGIXML_DEVELOPMENT_COMPONENT} )
282+ install (FILES ${PUGIXML_HEADERS}
283+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ${versioned-dir} COMPONENT ${PUGIXML_DEVELOPMENT_COMPONENT} )
272284endif ()
273285
274286if (PUGIXML_BUILD_TESTS)
0 commit comments