Преглед изворни кода

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 година
родитељ
комит
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
+)