commit - cef2c2c7dbc6586e191ca70def71748727be7309
commit + 5c28587f5ca350ad5667d415d0385991b2c5b3fe
blob - dd3ebd11438d2c890e629700699df429f832f6d5
blob + 8ac2b0b292e4632a45e81a4ccdf97752036c8086
--- CMakeLists.txt
+++ CMakeLists.txt
COMMAND mandoc -T lint -W warning,stop ${MANUAL_PAGES}
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
COMMENT "Run mandoc static analysis")
+
+include(${PROJECT_SOURCE_DIR}/cmake/CPack.cmake)
blob - /dev/null
blob + 2384c81006767873abf47e518794081a8792b6e4 (mode 644)
--- /dev/null
+++ CPackConfig.cmake
+include(cmake/CPack.cmake)
blob - /dev/null
blob + cdf9c10a03b5fa27b773df310213d36aa8fd1aef (mode 644)
--- /dev/null
+++ cmake/CPack.cmake
+install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/ DESTINATION ${SERVICES_INSTALL_DIR}/ServiceMenus )
+install(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/usr/bin/unreliablefs DESTINATION bin)
+
+set(MAJOR_VERSION "1")
+set(MINOR_VERSION "0")
+set(PATCH_VERSION "0")
+
+if(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")
+include(InstallRequiredSystemLibraries)
+set(CPACK_SET_DESTDIR "on")
+set(CPACK_PACKAGING_INSTALL_PREFIX "/tmp")
+set(CPACK_GENERATOR "DEB")
+set(CPACK_PACKAGE_DESCRIPTION "A FUSE-based fault injection filesystem.")
+set(CPACK_PACKAGE_DESCRIPTION_SUMMARY )
+set(CPACK_PACKAGE_VENDOR "nowardev")
+set(CPACK_PACKAGE_CONTACT "Sergey Bronnikov estetus@gmail.com")
+set(CPACK_PACKAGE_VERSION_MAJOR "${MAJOR_VERSION}")
+set(CPACK_PACKAGE_VERSION_MINOR "${MINOR_VERSION}")
+set(CPACK_PACKAGE_VERSION_PATCH "${PATCH_VERSION}")
+set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}_${MAJOR_VERSION}.${MINOR_VERSION}.${CPACK_PACKAGE_VERSION_PATCH}")
+set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}_${MAJOR_VERSION}.${MINOR_VERSION}.${CPACK_PACKAGE_VERSION_PATCH}")
+set(CPACK_DEBIAN_PACKAGE_DEPENDS " fuse, libfuse-dev ")
+set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
+set(CPACK_DEBIAN_PACKAGE_SECTION "devel")
+set(CPACK_DEBIAN_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR})
+set(CPACK_COMPONENTS_ALL Libraries ApplicationData)
+include(CPack)
+endif(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")
+
+###################
+
+set (CPACK_PACKAGE_NAME ${CMAKE_PROJECT_NAME})
+set (CPACK_PACKAGE_VENDOR unreliablefs)
+set (CPACK_PACKAGE_DESCRIPTION ${PROJECT_DESCRIPTION})
+set (CPACK_PACKAGE_DESCRIPTION_SUMMARY ${PROJECT_DESCRIPTION})
+set (CPACK_PACKAGE_CONTACT "Sergey Bronnikov <estetus@gmail.com>")
+set (CPACK_PACKAGE_HOMEPAGE_URL ${PROJECT_HOMEPAGE_URL})
+
+set (CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
+set (CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
+set (CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH})
+set (CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
+
+set (CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/LICENSE.txt")
+configure_file(${CMAKE_SOURCE_DIR}/LICENSE ${CPACK_RESOURCE_FILE_LICENSE})
+
+set (CPACK_RESOURCE_FILE_README "${CMAKE_SOURCE_DIR}/cmake/packaging/ReadMe.txt")
+set (CPACK_RESOURCE_FILE_WELCOME "${CMAKE_SOURCE_DIR}/cmake/packaging/Welcome.txt")
+
+if (APPLE)
+ set (CPACK_SYSTEM_NAME "macOS")
+ execute_process(
+ COMMAND sw_vers -productVersion
+ OUTPUT_VARIABLE CPACK_SYSTEM_VERSION
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+elseif(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
+ set (CPACK_SYSTEM_NAME "FreeBSD")
+ execute_process(
+ COMMAND freebsd-version
+ OUTPUT_VARIABLE CPACK_SYSTEM_VERSION
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+else()
+ if(EXISTS /etc/os-release)
+ file(READ /etc/os-release OS_RELEASE)
+ string(REGEX REPLACE "\r?\n" ";" LINES "${OS_RELEASE}")
+
+ foreach(LINE ${LINES})
+ string(REGEX MATCH "^ID=\"?([A-Za-z0-9._-]+)\"?" match ${LINE}})
+ if (match)
+ set (CPACK_SYSTEM_NAME ${CMAKE_MATCH_1})
+ endif()
+
+ string(REGEX MATCH "^VERSION_ID=\"?([A-Za-z0-9._-]+)\"?" match ${LINE}})
+ if (match)
+ set (CPACK_SYSTEM_VERSION ${CMAKE_MATCH_1})
+ endif()
+ endforeach()
+ else()
+ set (CPACK_SYSTEM_NAME "unknown")
+ endif()
+endif()
+
+if (${CPACK_SYSTEM_NAME} STREQUAL "macOS")
+ set (CPACK_GENERATOR "PackageMaker")
+ set (CMAKE_INSTALL_PREFIX "/usr/local")
+ set (CPACK_PACKAGING_INSTALL_PREFIX "/usr/local")
+elseif (${CPACK_SYSTEM_NAME} STREQUAL "debian")
+ set (CPACK_GENERATOR DEB)
+ set (CPACK_DEBIAN_PACKAGE_MAINTAINER ${CPACK_PACKAGE_CONTACT})
+ set (CPACK_DEBIAN_PACKAGE_DESCRIPTION ${PROJECT_DESCRIPTION})
+ set (CPACK_DEBIAN_PACKAGE_DEPENDS "libz-dev, libsqlite3-dev, ncurses-dev, libstdc++-6-dev, libxml2-dev, uuid-dev")
+elseif(${CPACK_SYSTEM_NAME} STREQUAL "ubuntu")
+ set (CPACK_GENERATOR DEB)
+ set (CPACK_DEBIAN_PACKAGE_MAINTAINER ${CPACK_PACKAGE_CONTACT})
+ set (CPACK_DEBIAN_PACKAGE_DESCRIPTION ${PROJECT_DESCRIPTION})
+ set (CPACK_DEBIAN_PACKAGE_DEPENDS "zlib1g, libncurses5, libstdc++6, libxml2, libsqlite3-0")
+elseif(${CPACK_SYSTEM_NAME} STREQUAL "fedora")
+ set (CPACK_GENERATOR RPM)
+ set (CPACK_RPM_PACKAGE_REQUIRES "ncurses, libsqlite3x, zlib, libxml2, libuuid")
+elseif(${CPACK_SYSTEM_NAME} STREQUAL "FreeBSD")
+ set (CPACK_GENERATOR STGZ)
+ return()
+ # The following does not work on the FreeBSD 11.2 and default CMake.
+ # For some reason, CPack does not recognize FreeBSD as a valid generator
+ # TODO: fix
+ set (CPACK_GENERATOR FreeBSD)
+ set (CPACK_FREEBSD_PACKAGE_NAME ${CPACK_PACKAGE_NAME})
+ set (CPACK_FREEBSD_PACKAGE_COMMENT ${CPACK_PACKAGE_DESCRIPTION})
+ set (CPACK_FREEBSD_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION})
+ set (CPACK_FREEBSD_PACKAGE_WWW ${PROJECT_HOMEPAGE_URL})
+ set (CPACK_FREEBSD_PACKAGE_LICENSE "Apache-2.0")
+ set (CPACK_FREEBSD_PACKAGE_MAINTAINER ${CPACK_PACKAGE_CONTACT})
+ set (CPACK_FREEBSD_PACKAGE_ORIGIN "misc/mull")
+else()
+ message(WARNING "UnreliableFS package is not available for ${CPACK_SYSTEM_NAME} yet.")
+endif()
+
+set (MULL_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_SYSTEM_NAME}-${CPACK_SYSTEM_VERSION}")
+set (CPACK_PACKAGE_FILE_NAME ${MULL_PACKAGE_FILE_NAME})
+
+include(CPack)
+
+file (WRITE ${CMAKE_CURRENT_BINARY_DIR}/PACKAGE_FILE_NAME ${MULL_PACKAGE_FILE_NAME})