Skip to content

Commit 41ba9c5

Browse files
committed
Make install will not overwrite configs anymore.
1 parent 0059c65 commit 41ba9c5

1 file changed

Lines changed: 18 additions & 3 deletions

File tree

CMakeLists.txt

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -257,9 +257,24 @@ if ("${CMAKE_SYSTEM}" MATCHES "Linux")
257257
LIBRARY DESTINATION ${MANALYZE_INSTALL_PLUGIN_SUBDIR})
258258
endif()
259259

260-
# Copy the configuration file template.
261-
install(FILES bin/manalyze.conf
262-
DESTINATION ${MANALYZE_INSTALL_CONFIG_SUBDIR})
260+
# Install the default configuration without overwriting user edits.
261+
set(MANALYZE_INSTALL_CONFIG_CODE [=[
262+
if(IS_ABSOLUTE "@CMAKE_INSTALL_SYSCONFDIR@")
263+
set(config_dir "$ENV{DESTDIR}@CMAKE_INSTALL_SYSCONFDIR@/manalyze")
264+
else()
265+
set(config_dir "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/@CMAKE_INSTALL_SYSCONFDIR@/manalyze")
266+
endif()
267+
set(config_path "${config_dir}/manalyze.conf")
268+
if(NOT EXISTS "${config_path}")
269+
file(MAKE_DIRECTORY "${config_dir}")
270+
file(INSTALL
271+
DESTINATION "${config_dir}"
272+
TYPE FILE
273+
FILES "@CMAKE_CURRENT_SOURCE_DIR@/bin/manalyze.conf")
274+
endif()
275+
]=])
276+
string(CONFIGURE "${MANALYZE_INSTALL_CONFIG_CODE}" MANALYZE_INSTALL_CONFIG_CODE @ONLY)
277+
install(CODE "${MANALYZE_INSTALL_CONFIG_CODE}")
263278
endif()
264279

265280
# Uninstall target using install_manifest.txt

0 commit comments

Comments
 (0)