Skip to content

Commit eee4115

Browse files
authored
Merge pull request #75 from cpp-best-practices/install-usage-in-the-end
2 parents 435d304 + e844702 commit eee4115

1 file changed

Lines changed: 19 additions & 19 deletions

File tree

src/PackageProject.cmake

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -134,32 +134,16 @@ function(package_project)
134134
list(APPEND _PackageProject_PRIVATE_DEPENDENCIES ${_PRIVATE_DEPENDENCIES_CONFIG})
135135

136136
# Installation of package (compatible with vcpkg, etc)
137+
set(_targets_list ${_PackageProject_TARGETS})
138+
unset(_PackageProject_TARGETS) # to avoid ycm conflict
137139
install(
138-
TARGETS ${_PackageProject_TARGETS}
140+
TARGETS ${_targets_list}
139141
EXPORT ${_PackageProject_EXPORT}
140142
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT shlib
141143
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT lib
142144
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT bin
143145
PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${_PackageProject_NAME}" COMPONENT dev)
144146

145-
# install the usage file
146-
set(_targets_str "")
147-
foreach(_target ${_PackageProject_TARGETS})
148-
set(_targets_str "${_targets_str} ${_PackageProject_NAMESPACE}${_target}")
149-
endforeach()
150-
set(USAGE_FILE_CONTENT
151-
"The package ${_PackageProject_NAME} provides CMake targets:
152-
153-
find_package(${_PackageProject_NAME} CONFIG REQUIRED)
154-
target_link_libraries(main PRIVATE ${_targets_str})
155-
")
156-
install(CODE "MESSAGE(STATUS \"${USAGE_FILE_CONTENT}\")")
157-
file(WRITE "${_PackageProject_EXPORT_DESTINATION}/usage" "${USAGE_FILE_CONTENT}")
158-
install(FILES "${_PackageProject_EXPORT_DESTINATION}/usage"
159-
DESTINATION "${_PackageProject_CONFIG_INSTALL_DESTINATION}")
160-
161-
unset(_PackageProject_TARGETS)
162-
163147
# download ForwardArguments
164148
FetchContent_Declare(
165149
_fargs
@@ -192,5 +176,21 @@ function(package_project)
192176

193177
install_basic_package_files(${_PackageProject_NAME} "${_FARGS_LIST}")
194178

179+
# install the usage file
180+
set(_targets_str "")
181+
foreach(_target ${_targets_list})
182+
set(_targets_str "${_targets_str} ${_PackageProject_NAMESPACE}${_target}")
183+
endforeach()
184+
set(USAGE_FILE_CONTENT
185+
"# The package ${_PackageProject_NAME} provides the following CMake targets:
186+
187+
find_package(${_PackageProject_NAME} CONFIG REQUIRED)
188+
target_link_libraries(main PRIVATE ${_targets_str})
189+
")
190+
file(WRITE "${_PackageProject_EXPORT_DESTINATION}/usage" "${USAGE_FILE_CONTENT}")
191+
install(FILES "${_PackageProject_EXPORT_DESTINATION}/usage"
192+
DESTINATION "${_PackageProject_CONFIG_INSTALL_DESTINATION}")
193+
install(CODE "MESSAGE(STATUS \"${USAGE_FILE_CONTENT}\")")
194+
195195
include("${_ycm_SOURCE_DIR}/modules/AddUninstallTarget.cmake")
196196
endfunction()

0 commit comments

Comments
 (0)