You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
3.2 KiB
108 lines
3.2 KiB
6 years ago
|
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||
|
# file Copyright.txt or https://cmake.org/licensing for details.
|
||
|
|
||
|
|
||
|
if(CMAKE_BINARY_DIR)
|
||
|
message(FATAL_ERROR "CPackFreeBSD.cmake may only be used by CPack internally.")
|
||
|
endif()
|
||
|
|
||
|
if(NOT UNIX)
|
||
|
message(FATAL_ERROR "CPackFreeBSD.cmake may only be used under UNIX.")
|
||
|
endif()
|
||
|
|
||
|
|
||
|
###
|
||
|
#
|
||
|
# These bits are copied from the Debian packaging file; slightly modified.
|
||
|
# They are used for filling in FreeBSD-packaging variables that can take
|
||
|
# on values from elsewhere -- e.g. the package description may as well be
|
||
|
# copied from Debian.
|
||
|
#
|
||
|
function(_cpack_freebsd_fallback_var OUTPUT_VAR_NAME)
|
||
|
set(FALLBACK_VAR_NAMES ${ARGN})
|
||
|
|
||
|
set(VALUE "${${OUTPUT_VAR_NAME}}")
|
||
|
if(VALUE)
|
||
|
return()
|
||
|
endif()
|
||
|
|
||
|
foreach(variable_name IN LISTS FALLBACK_VAR_NAMES)
|
||
|
if(${variable_name})
|
||
|
set(${OUTPUT_VAR_NAME} "${${variable_name}}" PARENT_SCOPE)
|
||
|
set(VALUE "${${variable_name}}")
|
||
|
break()
|
||
|
endif()
|
||
|
endforeach()
|
||
|
if(NOT VALUE)
|
||
|
message(WARNING "Variable ${OUTPUT_VAR_NAME} could not be given a fallback value from any variable ${FALLBACK_VAR_NAMES}.")
|
||
|
endif()
|
||
|
endfunction()
|
||
|
|
||
|
function(check_required_var VAR_NAME)
|
||
|
if(NOT ${VAR_NAME})
|
||
|
message(FATAL_ERROR "Variable ${VAR_NAME} is not set.")
|
||
|
endif()
|
||
|
endfunction()
|
||
|
|
||
|
set(_cpack_freebsd_fallback_origin "misc/bogus")
|
||
|
|
||
|
_cpack_freebsd_fallback_var("CPACK_FREEBSD_PACKAGE_NAME"
|
||
|
"CPACK_PACKAGE_NAME"
|
||
|
"CMAKE_PROJECT_NAME"
|
||
|
)
|
||
|
|
||
|
set(_cpack_freebsd_fallback_www "http://example.com/?pkg=${CPACK_FREEBSD_PACKAGE_NAME}")
|
||
|
|
||
|
_cpack_freebsd_fallback_var("CPACK_FREEBSD_PACKAGE_COMMENT"
|
||
|
"CPACK_PACKAGE_DESCRIPTION_SUMMARY"
|
||
|
)
|
||
|
|
||
|
# TODO: maybe read the PACKAGE_DESCRIPTION file for the longer
|
||
|
# FreeBSD pkg-descr?
|
||
|
_cpack_freebsd_fallback_var("CPACK_FREEBSD_PACKAGE_DESCRIPTION"
|
||
|
"CPACK_DEBIAN_PACKAGE_DESCRIPTION"
|
||
|
"CPACK_PACKAGE_DESCRIPTION_SUMMARY"
|
||
|
"PACKAGE_DESCRIPTION"
|
||
|
)
|
||
|
|
||
|
# There's really only one homepage for a project, so
|
||
|
# re-use the Debian setting if it's there.
|
||
|
_cpack_freebsd_fallback_var("CPACK_FREEBSD_PACKAGE_WWW"
|
||
|
"CMAKE_PROJECT_HOMEPAGE_URL"
|
||
|
"CPACK_DEBIAN_PACKAGE_HOMEPAGE"
|
||
|
"_cpack_freebsd_fallback_www"
|
||
|
)
|
||
|
|
||
|
_cpack_freebsd_fallback_var("CPACK_FREEBSD_PACKAGE_VERSION"
|
||
|
"CMAKE_PROJECT_VERSION"
|
||
|
"${CMAKE_PROJECT_NAME}_VERSION"
|
||
|
"PROJECT_VERSION"
|
||
|
"CPACK_PACKAGE_VERSION"
|
||
|
"CPACK_PACKAGE_VERSION"
|
||
|
)
|
||
|
|
||
|
_cpack_freebsd_fallback_var("CPACK_FREEBSD_PACKAGE_MAINTAINER"
|
||
|
"CPACK_PACKAGE_CONTACT"
|
||
|
)
|
||
|
|
||
|
_cpack_freebsd_fallback_var("CPACK_FREEBSD_PACKAGE_LICENSE"
|
||
|
"CPACK_RPM_PACKAGE_LICENSE"
|
||
|
)
|
||
|
|
||
|
_cpack_freebsd_fallback_var("CPACK_FREEBSD_PACKAGE_ORIGIN"
|
||
|
"_cpack_freebsd_fallback_origin"
|
||
|
)
|
||
|
|
||
|
if(NOT CPACK_FREEBSD_PACKAGE_CATEGORIES)
|
||
|
string(REGEX REPLACE "/.*" "" CPACK_FREEBSD_PACKAGE_CATEGORIES ${CPACK_FREEBSD_PACKAGE_ORIGIN})
|
||
|
endif()
|
||
|
|
||
|
check_required_var("CPACK_FREEBSD_PACKAGE_NAME")
|
||
|
check_required_var("CPACK_FREEBSD_PACKAGE_ORIGIN")
|
||
|
check_required_var("CPACK_FREEBSD_PACKAGE_VERSION")
|
||
|
check_required_var("CPACK_FREEBSD_PACKAGE_MAINTAINER")
|
||
|
check_required_var("CPACK_FREEBSD_PACKAGE_COMMENT")
|
||
|
check_required_var("CPACK_FREEBSD_PACKAGE_DESCRIPTION")
|
||
|
check_required_var("CPACK_FREEBSD_PACKAGE_WWW")
|
||
|
check_required_var("CPACK_FREEBSD_PACKAGE_LICENSE")
|