mirror of
https://github.com/SoftEtherVPN/SoftEtherVPN.git
synced 2024-11-22 09:29:52 +03:00
CMake: add support for Debian packaging with CPack
This commit is contained in:
parent
0d07ba30f2
commit
a162dec76f
@ -1,6 +1,9 @@
|
|||||||
cmake_minimum_required(VERSION 3.4.3)
|
cmake_minimum_required(VERSION 3.6)
|
||||||
|
|
||||||
project(SoftEtherVPN LANGUAGES C)
|
project(SoftEtherVPN
|
||||||
|
VERSION 5.01.9657
|
||||||
|
LANGUAGES C
|
||||||
|
)
|
||||||
|
|
||||||
set(default_build_type "Release")
|
set(default_build_type "Release")
|
||||||
|
|
||||||
@ -10,3 +13,22 @@ if(EXISTS "${SoftEtherVPN_SOURCE_DIR}/.git" AND NOT EXISTS "${SoftEtherVPN_SOURC
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_subdirectory(src)
|
add_subdirectory(src)
|
||||||
|
|
||||||
|
# Packaging
|
||||||
|
set(CPACK_GENERATOR "DEB")
|
||||||
|
set(CPACK_COMPONENTS_ALL vpnserver vpnclient vpnbridge vpncmd)
|
||||||
|
set(CPACK_PACKAGE_DIRECTORY ${SoftEtherVPN_SOURCE_DIR}/bin)
|
||||||
|
set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
|
||||||
|
set(CPACK_PACKAGE_VENDOR "SoftEther")
|
||||||
|
set(CPACK_PACKAGE_NAME "softether")
|
||||||
|
set(CPACK_PACKAGE_DESCRIPTION_FILE "${SoftEtherVPN_SOURCE_DIR}/description")
|
||||||
|
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "SoftEther VPN is an open-source cross-platform multi-protocol VPN program, created as an academic project in the University of Tsukuba.")
|
||||||
|
|
||||||
|
# DEB
|
||||||
|
set(CPACK_DEB_COMPONENT_INSTALL ON)
|
||||||
|
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
|
||||||
|
set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT")
|
||||||
|
set(CPACK_DEBIAN_PACKAGE_SECTION "net")
|
||||||
|
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Unknown")
|
||||||
|
|
||||||
|
include(CPack)
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
include(GNUInstallDirs)
|
include(GNUInstallDirs)
|
||||||
|
|
||||||
macro(install_wrapper_script target destination)
|
macro(install_wrapper_script component target destination)
|
||||||
get_filename_component(filename ${target} NAME)
|
get_filename_component(filename ${target} NAME)
|
||||||
|
|
||||||
file(WRITE ${CMAKE_SOURCE_DIR}/tmp/script/${filename} "#!/bin/sh\n")
|
file(WRITE ${CMAKE_SOURCE_DIR}/tmp/script/${filename} "#!/bin/sh\n")
|
||||||
@ -8,6 +8,7 @@ macro(install_wrapper_script target destination)
|
|||||||
file(APPEND ${CMAKE_SOURCE_DIR}/tmp/script/${filename} "exit $?\n")
|
file(APPEND ${CMAKE_SOURCE_DIR}/tmp/script/${filename} "exit $?\n")
|
||||||
|
|
||||||
install(FILES ${CMAKE_SOURCE_DIR}/tmp/script/${filename}
|
install(FILES ${CMAKE_SOURCE_DIR}/tmp/script/${filename}
|
||||||
|
COMPONENT ${component}
|
||||||
DESTINATION ${destination}
|
DESTINATION ${destination}
|
||||||
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
||||||
)
|
)
|
||||||
@ -124,8 +125,33 @@ add_custom_command(TARGET hamcore-archive-build
|
|||||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/tmp/hamcore.se2 ${VPNCMD_RUNTIME_OUTPUT_DIRECTORY}
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/tmp/hamcore.se2 ${VPNCMD_RUNTIME_OUTPUT_DIRECTORY}
|
||||||
)
|
)
|
||||||
|
|
||||||
# Copy contents of "bin" directory to /usr/lib(exec)/softether/
|
# Copy "vpnserver" directory to /usr/lib(exec)/softether/
|
||||||
install(DIRECTORY "${CMAKE_SOURCE_DIR}/bin/"
|
install(DIRECTORY ${VPNSERVER_RUNTIME_OUTPUT_DIRECTORY}
|
||||||
|
COMPONENT "vpnserver"
|
||||||
|
DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/softether"
|
||||||
|
PATTERN "*"
|
||||||
|
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
||||||
|
)
|
||||||
|
|
||||||
|
# Copy "vpnclient" directory to /usr/lib(exec)/softether/
|
||||||
|
install(DIRECTORY ${VPNCLIENT_RUNTIME_OUTPUT_DIRECTORY}
|
||||||
|
COMPONENT "vpnclient"
|
||||||
|
DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/softether"
|
||||||
|
PATTERN "*"
|
||||||
|
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
||||||
|
)
|
||||||
|
|
||||||
|
# Copy "vpnbridge" directory to /usr/lib(exec)/softether/
|
||||||
|
install(DIRECTORY ${VPNBRIDGE_RUNTIME_OUTPUT_DIRECTORY}
|
||||||
|
COMPONENT "vpnbridge"
|
||||||
|
DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/softether"
|
||||||
|
PATTERN "*"
|
||||||
|
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
||||||
|
)
|
||||||
|
|
||||||
|
# Copy "vpncmd" directory to /usr/lib(exec)/softether/
|
||||||
|
install(DIRECTORY ${VPNCMD_RUNTIME_OUTPUT_DIRECTORY}
|
||||||
|
COMPONENT "vpncmd"
|
||||||
DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/softether"
|
DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/softether"
|
||||||
PATTERN "*"
|
PATTERN "*"
|
||||||
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
||||||
@ -133,10 +159,10 @@ install(DIRECTORY "${CMAKE_SOURCE_DIR}/bin/"
|
|||||||
|
|
||||||
# Create wrapper scripts in the user's binaries directory, which is usually "/usr/local/bin".
|
# Create wrapper scripts in the user's binaries directory, which is usually "/usr/local/bin".
|
||||||
# This is required because symlinks use the folder they are in as working directory.
|
# This is required because symlinks use the folder they are in as working directory.
|
||||||
install_wrapper_script("${CMAKE_INSTALL_FULL_LIBEXECDIR}/softether/vpnserver/vpnserver" ${CMAKE_INSTALL_FULL_BINDIR})
|
install_wrapper_script("vpnserver" "${CMAKE_INSTALL_FULL_LIBEXECDIR}/softether/vpnserver/vpnserver" ${CMAKE_INSTALL_FULL_BINDIR})
|
||||||
install_wrapper_script("${CMAKE_INSTALL_FULL_LIBEXECDIR}/softether/vpnclient/vpnclient" ${CMAKE_INSTALL_FULL_BINDIR})
|
install_wrapper_script("vpnclient" "${CMAKE_INSTALL_FULL_LIBEXECDIR}/softether/vpnclient/vpnclient" ${CMAKE_INSTALL_FULL_BINDIR})
|
||||||
install_wrapper_script("${CMAKE_INSTALL_FULL_LIBEXECDIR}/softether/vpnbridge/vpnbridge" ${CMAKE_INSTALL_FULL_BINDIR})
|
install_wrapper_script("vpnbridge" "${CMAKE_INSTALL_FULL_LIBEXECDIR}/softether/vpnbridge/vpnbridge" ${CMAKE_INSTALL_FULL_BINDIR})
|
||||||
install_wrapper_script("${CMAKE_INSTALL_FULL_LIBEXECDIR}/softether/vpncmd/vpncmd" ${CMAKE_INSTALL_FULL_BINDIR})
|
install_wrapper_script("vpncmd" "${CMAKE_INSTALL_FULL_LIBEXECDIR}/softether/vpncmd/vpncmd" ${CMAKE_INSTALL_FULL_BINDIR})
|
||||||
|
|
||||||
# Print message after installing the targets
|
# Print message after installing the targets
|
||||||
install(CODE "message(\"\n----------------------------------------------------------------------------------------------------------------------------\")")
|
install(CODE "message(\"\n----------------------------------------------------------------------------------------------------------------------------\")")
|
||||||
|
Loading…
Reference in New Issue
Block a user