Просмотр исходного кода

CMake: Install config and logging directories

These directories are essential for apt to work, so we should
install them in the upstream build system and not just in the
debian packaging...
Julian Andres Klode лет назад: 10
Родитель
Сommit
35d74be55f
2 измененных файлов с 26 добавлено и 0 удалено
  1. 13 0
      CMake/Misc.cmake
  2. 13 0
      CMakeLists.txt

+ 13 - 0
CMake/Misc.cmake

@@ -86,3 +86,16 @@ function(path_join out path1 path2)
         set(${out} "${path1}/${path2}" PARENT_SCOPE)
     endif()
 endfunction()
+
+# install_empty_directories(path ...)
+#
+# Creates empty directories in the install destination dir. Paths may be
+# absolute or relative; in the latter case, the value of CMAKE_INSTALL_PREFIX
+# is prepended.
+function(install_empty_directories)
+    foreach(path ${ARGN})
+        path_join(full_path "${CMAKE_INSTALL_PREFIX}" "${path}")
+        INSTALL(CODE "MESSAGE(STATUS \"Creating directory: \$ENV{DESTDIR}${full_path}\")"
+                CODE "FILE(MAKE_DIRECTORY \$ENV{DESTDIR}${full_path})")
+    endforeach()
+endfunction()

+ 13 - 0
CMakeLists.txt

@@ -143,3 +143,16 @@ add_subdirectory(test)
 
 # Link update-po4a into the update-po target
 add_dependencies(update-po update-po4a)
+
+# Create our directories.
+install_empty_directories(
+  ${CMAKE_INSTALL_FULL_SYSCONFDIR}/apt/apt.conf.d
+  ${CMAKE_INSTALL_FULL_SYSCONFDIR}/apt/preferences.d
+  ${CMAKE_INSTALL_FULL_SYSCONFDIR}/apt/sources.list.d
+  ${CMAKE_INSTALL_FULL_SYSCONFDIR}/apt/trusted.gpg.d
+  ${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/cache/apt/archives/partial
+  ${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/lib/apt/lists/partial
+  ${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/lib/apt/mirrors/partial
+  ${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/lib/apt/periodic
+  ${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/log/apt
+)