1# This file is included from the top-level CMakeLists.txt. We just store it 2# here to avoid cluttering up that file. 3 4set(PKGNAME ${CMAKE_PROJECT_NAME} CACHE STRING 5 "Distribution package name (default: ${CMAKE_PROJECT_NAME})") 6string(TOLOWER ${PKGNAME} PKGNAME_LC) 7set(PKGVENDOR "The ${CMAKE_PROJECT_NAME} Project" CACHE STRING 8 "Vendor name to be included in distribution package descriptions (default: The ${CMAKE_PROJECT_NAME} Project)") 9set(PKGURL "http://www.${CMAKE_PROJECT_NAME}.org" CACHE STRING 10 "URL of project web site to be included in distribution package descriptions (default: http://www.${CMAKE_PROJECT_NAME}.org)") 11set(PKGEMAIL "information@${CMAKE_PROJECT_NAME}.org" CACHE STRING 12 "E-mail of project maintainer to be included in distribution package descriptions (default: information@${CMAKE_PROJECT_NAME}.org") 13set(PKGID "com.${CMAKE_PROJECT_NAME_LC}.vglclient" CACHE STRING 14 "Globally unique package identifier (reverse DNS notation) (default: com.${CMAKE_PROJECT_NAME_LC}.vglclient)") 15 16 17if(UNIX AND NOT CMAKE_INSTALL_PREFIX MATCHES "^/usr/?$") 18 set(DEFAULT_VGL_BINSYMLINKS 0) 19 set(DEFAULT_VGL_INCSYMLINKS 0) 20 if(CMAKE_INSTALL_PREFIX STREQUAL "${CMAKE_INSTALL_DEFAULT_PREFIX}") 21 set(DEFAULT_VGL_BINSYMLINKS 1) 22 set(DEFAULT_VGL_INCSYMLINKS 1) 23 endif() 24 option(VGL_BINSYMLINKS 25 "In the distribution packages, create symlinks to VirtualGL binaries and scripts under /usr/bin (default: @DEFAULT_VGL_BINSYMLINKS@)" 26 ${DEFAULT_VGL_BINSYMLINKS}) 27 boolean_number(VGL_BINSYMLINKS) 28 option(VGL_INCSYMLINKS 29 "In the distribution packages, create symlinks to VirtualGL headers under /usr/include (default: @DEFAULT_VGL_INCSYMLINKS@)" 30 ${DEFAULT_VGL_INCSYMLINKS}) 31 boolean_number(VGL_INCSYMLINKS) 32else() 33 set(VGL_BINSYMLINKS 0) 34 set(VGL_INCSYMLINKS 0) 35endif() 36 37 38############################################################################### 39# Linux RPM and DEB 40############################################################################### 41 42if(CMAKE_SYSTEM_NAME STREQUAL "Linux") 43 44set(RPMARCH ${CMAKE_SYSTEM_PROCESSOR}) 45if(CPU_TYPE STREQUAL "x86_64") 46 set(DEBARCH amd64) 47elseif(CPU_TYPE STREQUAL "arm64") 48 set(DEBARCH ${CPU_TYPE}) 49elseif(CPU_TYPE STREQUAL "arm") 50 check_c_source_compiles(" 51 #if __ARM_PCS_VFP != 1 52 #error \"float ABI = softfp\" 53 #endif 54 int main(void) { return 0; }" HAVE_HARD_FLOAT) 55 if(HAVE_HARD_FLOAT) 56 set(RPMARCH armv7hl) 57 set(DEBARCH armhf) 58 else() 59 set(RPMARCH armel) 60 set(DEBARCH armel) 61 endif() 62elseif(CMAKE_SYSTEM_PROCESSOR_LC STREQUAL "ppc64le") 63 set(DEBARCH ppc64el) 64else() 65 set(DEBARCH ${CMAKE_SYSTEM_PROCESSOR}) 66endif() 67message(STATUS "RPM architecture = ${RPMARCH}, DEB architecture = ${DEBARCH}") 68 69configure_file(release/makerpm.in pkgscripts/makerpm) 70configure_file(release/rpm.spec.in pkgscripts/rpm.spec @ONLY) 71 72add_custom_target(rpm pkgscripts/makerpm 73 SOURCES pkgscripts/makerpm) 74 75configure_file(release/makesrpm.in pkgscripts/makesrpm) 76 77add_custom_target(srpm pkgscripts/makesrpm 78 SOURCES pkgscripts/makesrpm 79 DEPENDS dist) 80 81set(EGLDEPENDS "") 82if(VGL_EGLBACKEND) 83 set(EGLDEPENDS ", libegl1-mesa:${DEBARCH}") 84endif() 85configure_file(release/makedpkg.in pkgscripts/makedpkg) 86configure_file(release/deb-control.in pkgscripts/deb-control) 87 88add_custom_target(deb pkgscripts/makedpkg 89 SOURCES pkgscripts/makedpkg) 90 91endif() # Linux 92 93 94############################################################################### 95# Windows installer (NullSoft Installer) 96############################################################################### 97 98if(WIN32) 99 100if(BITS EQUAL 64) 101 set(INST_DEFS -DWIN64) 102endif() 103 104if(MSVC_IDE) 105 set(INST_DEFS ${INST_DEFS} "-DBUILDDIR=${CMAKE_CFG_INTDIR}\\") 106else() 107 set(INST_DEFS ${INST_DEFS} "-DBUILDDIR=") 108endif() 109 110configure_file(release/installer.nsi.in pkgscripts/installer.nsi @ONLY) 111 112if(MSVC_IDE) 113 add_custom_target(installer 114 COMMAND ${CMAKE_COMMAND} -E make_directory @CMAKE_BINARY_DIR@/${CMAKE_CFG_INTDIR} 115 COMMAND makensis -nocd ${INST_DEFS} pkgscripts/installer.nsi 116 DEPENDS tcbench nettest wglspheres 117 SOURCES pkgscripts/installer.nsi) 118else() 119 add_custom_target(installer 120 COMMAND makensis -nocd ${INST_DEFS} pkgscripts/installer.nsi 121 DEPENDS tcbench nettest wglspheres 122 SOURCES pkgscripts/installer.nsi) 123endif() 124 125endif() # WIN32 126 127 128############################################################################### 129# Mac DMG 130############################################################################### 131 132if(APPLE) 133 134set(MACOS_APP_CERT_NAME "" CACHE STRING 135 "Name of the Developer ID Application certificate (in the macOS keychain) that should be used to sign the VirtualGL DMG. Leave this blank to generate an unsigned DMG.") 136set(MACOS_INST_CERT_NAME "" CACHE STRING 137 "Name of the Developer ID Installer certificate (in the macOS keychain) that should be used to sign the VirtualGL installer package. Leave this blank to generate an unsigned package.") 138 139string(REGEX REPLACE "/" ":" CMAKE_INSTALL_MACPREFIX ${CMAKE_INSTALL_PREFIX}) 140string(REGEX REPLACE "^:" "" CMAKE_INSTALL_MACPREFIX 141 ${CMAKE_INSTALL_MACPREFIX}) 142 143configure_file(release/makemacpkg.in pkgscripts/makemacpkg) 144configure_file(release/Distribution.xml.in pkgscripts/Distribution.xml) 145configure_file(release/uninstall.in pkgscripts/uninstall) 146configure_file(release/uninstall.applescript.in pkgscripts/uninstall.applescript) 147 148add_custom_target(dmg pkgscripts/makemacpkg 149 SOURCES pkgscripts/makemacpkg) 150 151endif() # APPLE 152 153 154############################################################################### 155# Generic 156############################################################################### 157 158configure_file(release/makesrpm.in pkgscripts/makesrpm) 159 160set(PROJECT_NAME ${CMAKE_PROJECT_NAME}) 161if(WIN32) 162 string(REGEX REPLACE "-Utils" "" PROJECT_NAME ${CMAKE_PROJECT_NAME}) 163endif() 164add_custom_target(dist 165 COMMAND git archive --prefix=${PROJECT_NAME}-${VERSION}/ HEAD | 166 gzip > ${CMAKE_BINARY_DIR}/${PROJECT_NAME}-${VERSION}.tar.gz 167 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}) 168 169configure_file(release/maketarball.in pkgscripts/maketarball) 170 171add_custom_target(tarball pkgscripts/maketarball 172 SOURCES pkgscripts/maketarball) 173