# synergy -- mouse and keyboard sharing utility # Copyright (C) 2009 Chris Schoeneman, Nick Bolton, Sorin Sbarnea # # This package is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # found in the file COPYING that should have accompanied this file. # # This package is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # List of CPack variables: # http://www.vtk.org/Wiki/CMake:CPackConfiguration # CPack files common to all platforms. SET(cpack_targets synergys synergyc) IF(WIN32) # Windows has an extra GUI and DLL. LIST(APPEND cpack_targets launcher synrgyhk) ENDIF(WIN32) INSTALL( TARGETS ${cpack_targets} RUNTIME DESTINATION bin) IF(WIN32) INSTALL( FILES bin/Release/qsynergy.exe COMPONENT qsynergy DESTINATION bin) set(CPACK_COMPONENT_QSYNERGY_DISPLAY_NAME "Graphical User Interface") set(VCREDIST_PATH "${VCREDIST_DIR}\\\\${VCREDIST_FILE}") install( PROGRAMS ${VCREDIST_PATH} COMPONENT vcredist DESTINATION redist) set(CPACK_COMPONENT_VCREDIST_DISPLAY_NAME "Visual C++ 2008 Redistributable") set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS " ExecWait '\\\"$INSTDIR\\\\redist\\\\${VCREDIST_FILE}\\\" /install /q'") ELSE(WIN32) IF(APPLE) # TODO: how the hell do we distribute mac apps? #INSTALL( # MACOSX_BUNDLE # bin/QSynergy.app # DESTINATION bin) ELSE(APPLE) INSTALL( FILES bin/qsynergy DESTINATION bin) ENDIF(APPLE) ENDIF(WIN32) # The default CPack behaviour is not to append the system processor # type, which is undesirable in our case, since we want to support # both 32-bit and 64-bit processors. SET(CPACK_SYSTEM_NAME ${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}) # Hack: When running CMake on 64-bit Windows 7, the value of # CMAKE_SYSTEM_PROCESSOR always seems to be x86, regardless of if the # CMake build is 32-bit or 64-bit. As a work around, we will prefix either # x86 or x64 (in the same style as Microsoft do with their installers). # However, some confusion may be caused when the user sees that Synergy # is installed in the x86 Program Files directory (even though it's a # 64-bit build). This is caused by NSIS only supporting the 32-bit # installs structure (also uses 32-bit registry key locations). IF(WIN32) IF(CMAKE_CL_64) SET(CPACK_SYSTEM_NAME Windows-x64) ELSE(CMAKE_CL_64) SET(CPACK_SYSTEM_NAME Windows-x86) ENDIF(CMAKE_CL_64) ENDIF(WIN32) # For source code, use .tar.gz on Unix, and .zip on Windows IF(UNIX) SET(CPACK_SOURCE_GENERATOR TGZ) ELSE(UNIX) SET(CPACK_SOURCE_GENERATOR ZIP) ENDIF(UNIX) if(APPLE) set(CPACK_SYSTEM_NAME "MacOSX-Universal") endif(APPLE) SET(CPACK_PACKAGE_NAME "synergy") SET(CPACK_PACKAGE_VENDOR "The Synergy Project") SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Installs Synergy server and client") SET(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR}) SET(CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR}) SET(CPACK_PACKAGE_VERSION_PATCH ${VERSION_REV}) SET(CPACK_PACKAGE_VERSION ${VERSION}) SET(CPACK_PACKAGE_CONTACT http://synergy-foss.org/) SET(CPACK_RESOURCE_FILE_LICENSE "${cmake_dir}/License.rtf") SET(CPACK_RESOURCE_FILE_README "${cmake_dir}/Readme.txt") IF(WIN32) SET(WIN32_ICON "${root_dir}/cmd/launcher/synergy.ico") SET(CPACK_NSIS_MUI_ICON ${WIN32_ICON}) SET(CPACK_NSIS_MUI_UNIICON ${WIN32_ICON}) SET(CPACK_NSIS_INSTALLED_ICON_NAME launcher) SET(CPACK_PACKAGE_INSTALL_DIRECTORY "Synergy") SET(CPACK_PACKAGE_EXECUTABLES qsynergy;Synergy) ENDIF(WIN32) # files to exclude from src package (regex patterns) # to escape, use 4 backslashes (\\\\) -- yuck! SET(CPACK_SOURCE_IGNORE_FILES # temp output dir in root "/bin/" # generated config.h file "/config\\\\.h$" # buildbot stuff "\\\\.buildbot\\\\-sourcedata$" # qt temp build dir "/gui/tmp/.*" # qt make file "/gui/Makefile$" # qt generated ui headers "/gui/ui_.*\\\\.h$" # compiled python files ".*\\\\.pyc$" # subversion caches (all dirs) ".*/\\\\.svn/.*" # emacs temporary files ".*~$" ) # Must be last (since it relies of CPACK_ vars). INCLUDE(CPack)