package.cmake 11 KB
Newer Older
Jan Möbius's avatar
Jan Möbius committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# option to disable inclusion of qmake build system into source package
option (
  DISABLE_QMAKE_BUILD
  "Disable inclusion of qmake build system into source package"
  OFF
)

# set name
set (CPACK_PACKAGE_NAME "OpenFlipper")
set (CPACK_PACKAGE_VENDOR "ACG")

# set version
set (CPACK_PACKAGE_VERSION_MAJOR "${OPENFLIPPER_VERSION_MAJOR}")
set (CPACK_PACKAGE_VERSION_MINOR "${OPENFLIPPER_VERSION_MINOR}")
set (CPACK_PACKAGE_VERSION_PATCH "${OPENFLIPPER_VERSION_PATCH}")
set (CPACK_PACKAGE_VERSION "${OPENFLIPPER_VERSION}")

# addition package info
set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "OpenFlipper Mesh manipulation too")
set (CPACK_PACKAGE_EXECUTABLES "OpenFlipper;OpenFlipper")
set (CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}")
set (CPACK_PACKAGE_INSTALL_REGISTRY_KEY "${CPACK_PACKAGE_NAME}")
set (CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}")
set (CPACK_SOURCE_STRIP_FILES "")

26

Jan Möbius's avatar
Jan Möbius committed
27
# set (CPACK_RESOURCE_FILE_README "/home/andy/vtk/CMake/Templates/CPack.GenericDescription.txt")
28

Jan Möbius's avatar
Jan Möbius committed
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82

set (CPACK_STRIP_FILES "bin/OpenFlipper")

# source package generation
set (CPACK_SOURCE_GENERATOR "TGZ;TBZ2;ZIP")

# ignored files in source package
set (CPACK_SOURCE_IGNORE_FILES  "\\\\.#;/#;.*~")
list (APPEND CPACK_SOURCE_IGNORE_FILES "/\\\\.git")
list (APPEND CPACK_SOURCE_IGNORE_FILES "/\\\\.svn")
list (APPEND CPACK_SOURCE_IGNORE_FILES "${CMAKE_CURRENT_BINARY_DIR}")
list (APPEND CPACK_SOURCE_IGNORE_FILES "Makefile")
list (APPEND CPACK_SOURCE_IGNORE_FILES "Makefile\\\\..*")
list (APPEND CPACK_SOURCE_IGNORE_FILES "\\\\.moc\\\\.cpp$")
list (APPEND CPACK_SOURCE_IGNORE_FILES "CMakeCache.txt")
list (APPEND CPACK_SOURCE_IGNORE_FILES "CMakeFiles")

list (APPEND CPACK_SOURCE_IGNORE_FILES "/.*_(32|64)_Debug/")
list (APPEND CPACK_SOURCE_IGNORE_FILES "/.*_(32|64)_Release/")

list (APPEND CPACK_SOURCE_IGNORE_FILES "/MacOS")
list (APPEND CPACK_SOURCE_IGNORE_FILES "/WIN")
list (APPEND CPACK_SOURCE_IGNORE_FILES "/tmp/")

list (APPEND CPACK_SOURCE_IGNORE_FILES "/.*\\\\.kdevelop")
list (APPEND CPACK_SOURCE_IGNORE_FILES "/.*\\\\.kdevses")

list (APPEND CPACK_SOURCE_IGNORE_FILES "/ACG/lib/")
list (APPEND CPACK_SOURCE_IGNORE_FILES "/ACG/include/")

if (DISABLE_QMAKE_BUILD)
  list (APPEND CPACK_SOURCE_IGNORE_FILES "/.*\\\\.pro")
  list (APPEND CPACK_SOURCE_IGNORE_FILES "/qmake/")
  list (APPEND CPACK_SOURCE_IGNORE_FILES "\\\\.qmake\\\\.cache")
endif ()

# filter out all disabled plugins
file (
  GLOB _plugins_in
  RELATIVE "${CMAKE_SOURCE_DIR}"
  "${CMAKE_SOURCE_DIR}/Plugin-*"
)
foreach (_plugin ${_plugins_in})
  string (REPLACE "Plugin-" "" _plugin_name ${_plugin})
  string (TOUPPER ${_plugin_name} _PLUGIN)
  if (NOT EXISTS ${CMAKE_SOURCE_DIR}/${_plugin}/CMakeLists.txt AND DISABLE_QMAKE_BUILD)
    list (APPEND CPACK_SOURCE_IGNORE_FILES "${CMAKE_SOURCE_DIR}/${_plugin}")
  elseif (DISABLE_PLUGIN_${_PLUGIN})
    list (APPEND CPACK_SOURCE_IGNORE_FILES "${CMAKE_SOURCE_DIR}/${_plugin}")
  endif ()
endforeach ()


if (WIN32)
Jan Möbius's avatar
Jan Möbius committed
83
  if ( EXISTS ${CMAKE_SOURCE_DIR}/branding ) 
Jan Möbius's avatar
Jan Möbius committed
84
85
    IF ( NOT WINDOWS_INSTALLER_ICON )
        # option to set the used Icon for OpenFlipper
Jan Möbius's avatar
Jan Möbius committed
86
        set ( WINDOWS_INSTALLER_ICON "${CMAKE_SOURCE_DIR}\\branding\\win\\OpenFlipper_Icon_128x128x32.ico" CACHE FILEPATH "Path to the Executables Icon" )
Jan Möbius's avatar
Jan Möbius committed
87
88
89
90
    ENDIF(NOT WINDOWS_INSTALLER_ICON )

    IF ( NOT WINDOWS_INSTALLER_IMAGE_ICON )
        # option to set the used Icon for OpenFlipper
Jan Möbius's avatar
Jan Möbius committed
91
        set ( WINDOWS_INSTALLER_IMAGE_ICON "${CMAKE_SOURCE_DIR}/branding/win/installer.bmp" CACHE FILEPATH "Path to the Installer Image Icon ( This has to be a bmp )" )
Jan Möbius's avatar
Jan Möbius committed
92
93
    ENDIF(NOT WINDOWS_INSTALLER_IMAGE_ICON )

Jan Möbius's avatar
Jan Möbius committed
94
95
96
97
98
99
    
    IF ( NOT WINDOWS_LICENSE_FILE )
        # option to set the used License file for OpenFlipper
        set ( WINDOWS_LICENSE_FILE "${CMAKE_SOURCE_DIR}\\branding\\win\\License.txt" CACHE FILEPATH "Path to the License file for installer" )
    ENDIF(NOT WINDOWS_LICENSE_FILE )

100
101
102
103
104
105
106
107
108
109
    IF ( NOT WINDOWS_WELCOME_FILE )
        # option to set the used License file for OpenFlipper
        set ( WINDOWS_WELCOME_FILE "${CMAKE_SOURCE_DIR}\\branding\\win\\Welcome.txt" CACHE FILEPATH "Path to the welcome file for installer" )
    ENDIF(NOT WINDOWS_WELCOME_FILE )

    IF ( NOT WINDOWS_DESCRIPTION_FILE )
        # option to set the used License file for OpenFlipper
        set ( WINDOWS_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}\\branding\\win\\Description.txt" CACHE FILEPATH "Path to the description file for installer" )
    ENDIF(NOT WINDOWS_DESCRIPTION_FILE )

Jan Möbius's avatar
Jan Möbius committed
110
111
112
113
114
115
116
117
118
  else()

    IF ( NOT WINDOWS_INSTALLER_ICON )
        # option to set the used Icon for OpenFlipper
        set ( WINDOWS_INSTALLER_ICON "${CMAKE_SOURCE_DIR}\\OpenFlipper\\Icons\\OpenFlipper_Icon_128x128x32.ico" CACHE FILEPATH "Path to the Executables Icon" )
    ENDIF(NOT WINDOWS_INSTALLER_ICON )

    IF ( NOT WINDOWS_INSTALLER_IMAGE_ICON )
        # option to set the used Icon for OpenFlipper
Jan Möbius's avatar
Jan Möbius committed
119
        set ( WINDOWS_INSTALLER_IMAGE_ICON "${CMAKE_SOURCE_DIR}/OpenFlipper/installer/win/installer.bmp" CACHE FILEPATH "Path to the Installer Image Icon ( This has to be a bmp )" )
Jan Möbius's avatar
Jan Möbius committed
120
121
    ENDIF(NOT WINDOWS_INSTALLER_IMAGE_ICON )

Jan Möbius's avatar
Jan Möbius committed
122
123
124

    IF ( NOT WINDOWS_LICENSE_FILE )
        # option to set the used License file for OpenFlipper
125
        set ( WINDOWS_LICENSE_FILE "${CMAKE_SOURCE_DIR}\\OpenFlipper\\installer\\win\\License.txt" CACHE FILEPATH "Path to the License file for installer" )
Jan Möbius's avatar
Jan Möbius committed
126
127
    ENDIF(NOT WINDOWS_LICENSE_FILE )

128
129
130
131
132
133
134
135
136
137
    IF ( NOT WINDOWS_WELCOME_FILE )
        # option to set the used License file for OpenFlipper
        set ( WINDOWS_WELCOME_FILE "${CMAKE_SOURCE_DIR}\\OpenFlipper\\installer\\win\\Welcome.txt" CACHE FILEPATH "Path to the welcome file for installer" )
    ENDIF(NOT WINDOWS_WELCOME_FILE )

    IF ( NOT WINDOWS_DESCRIPTION_FILE )
        # option to set the used License file for OpenFlipper
        set ( WINDOWS_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}\\OpenFlipper\\installer\\win\\Description.txt" CACHE FILEPATH "Path to the description file for installer" )
    ENDIF(NOT WINDOWS_DESCRIPTION_FILE )

Jan Möbius's avatar
Jan Möbius committed
138
139
  endif()

140
141
142
143
144
  set (CPACK_RESOURCE_FILE_LICENSE ${WINDOWS_LICENSE_FILE} )
  set (CPACK_RESOURCE_FILE_WELCOME ${WINDOWS_WELCOME_FILE} )
  set (CPACK_RESOURCE_DESCRIPTION_FILE ${WINDOWS_DESCRIPTION_FILE} )


Jan Möbius's avatar
Jan Möbius committed
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
  string(REGEX REPLACE "/" "\\\\\\\\" CLEAN_WINDOWS_INSTALLER_IMAGE_ICON "${WINDOWS_INSTALLER_IMAGE_ICON}"  )

  # window NSIS installer
  set (CPACK_GENERATOR "NSIS")
  set (CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_NAME} ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}")
  set (CPACK_NSIS_DISPLAY_NAME "OpenFlipper v${CPACK_PACKAGE_VERSION}")

  set (CPACK_NSIS_MUI_ICON ${WINDOWS_INSTALLER_ICON} )
  # we need a real uninstaller icon here and we have to define both to make the installer icon work
  set (CPACK_NSIS_MUI_UNIICON "${CMAKE_SOURCE_DIR}\\\\OpenFlipper\\\\Icons\\\\OpenFlipper_Icon_128x128x32.ico")

  set (CPACK_PACKAGE_ICON "${CLEAN_WINDOWS_INSTALLER_IMAGE_ICON}")
  set (CPACK_NSIS_HELP_LINK "http:\\\\www.openflipper.org")
  set (CPACK_NSIS_URL_INFO_ABOUT "http:\\\\www.openflipper.org")

  # Set the new Icon Name for OpenFlipper Core Application
  
  set (CPACK_PACKAGE_EXECUTABLES "OpenFlipper;OpenFlipper")
  # TODO: fillme
  # set (CPACK_NSIS_CONTACT "")

  set (CPACK_NSIS_CREATE_ICONS
       "CreateShortCut \\\"$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\OpenFlipper.lnk\\\" \\\"$INSTDIR\\\\OpenFlipper.exe\\\""
      )
  set (CPACK_NSIS_DELETE_ICONS
       "Delete \\\"$SMPROGRAMS\\\\$MUI_TEMP\\\\OpenFlipper.lnk\\\""
      )
172
173
174
175
176
    
  file (GLOB _files "${CMAKE_BINARY_DIR}/Build/*.dll")
  install(FILES ${_files}
    DESTINATION ${ACG_PROJECT_BINDIR}
  )
Jan Möbius's avatar
Jan Möbius committed
177
178

  # append dll's to installed package
179
180
181
  if (EXISTS "${CMAKE_SOURCE_DIR}/win/vcredist_x86.exe")

     install (FILES "${CMAKE_SOURCE_DIR}/win/vcredist_x86.exe"
Jan Möbius's avatar
Jan Möbius committed
182
183
184
      DESTINATION ${ACG_PROJECT_BINDIR}
    )
    set (CPACK_NSIS_EXTRA_INSTALL_COMMANDS "ExecWait '\\\"$INSTDIR\\\\vcredist_x86.exe\\\" /q:a'")
185
186
187

  else()
    message("Warning! No vcredist_x86 found. Please copy it to a directory called win in your source tree!!")
Jan Möbius's avatar
Jan Möbius committed
188
  endif ()
189

Jan Möbius's avatar
Jan Möbius committed
190
elseif (APPLE)
Jan Möbius's avatar
Jan Möbius committed
191

Jan Möbius's avatar
Jan Möbius committed
192
  if ( EXISTS ${CMAKE_SOURCE_DIR}/branding )
Jan Möbius's avatar
Jan Möbius committed
193
194
    IF ( NOT APPLE_INSTALLER_ICON )
        # option to set the used Icon for OpenFlipper
195
        set ( APPLE_INSTALLER_ICON "${CMAKE_SOURCE_DIR}\\branding\\mac\\OpenFlipper_Icon_128x128x32.ico" CACHE FILEPATH "Path to the Executables Icon" )
Jan Möbius's avatar
Jan Möbius committed
196
197
198
199
    ENDIF(NOT APPLE_INSTALLER_ICON )

    IF ( NOT APPLE_INSTALLER_IMAGE_ICON )
        # option to set the used Icon for OpenFlipper
Jan Möbius's avatar
Jan Möbius committed
200
        set ( APPLE_INSTALLER_IMAGE_ICON "${CMAKE_SOURCE_DIR}/branding/mac/installer.bmp" CACHE FILEPATH "Path to the Installer Image Icon ( This has to be a bmp )" )
Jan Möbius's avatar
Jan Möbius committed
201
202
    ENDIF(NOT APPLE_INSTALLER_IMAGE_ICON )

Jan Möbius's avatar
Jan Möbius committed
203
204
205
206
207
    IF ( NOT APPLE_LICENSE_FILE )
        # option to set the used License file for OpenFlipper
        set ( APPLE_LICENSE_FILE "${CMAKE_SOURCE_DIR}\\branding\\mac\\License.txt" CACHE FILEPATH "Path to the License file for installer" )
    ENDIF(NOT APPLE_LICENSE_FILE )

Jan Möbius's avatar
Jan Möbius committed
208
209
210
211
212
213
214
215
216
  else()

    IF ( NOT APPLE_INSTALLER_ICON )
        # option to set the used Icon for OpenFlipper
        set ( APPLE_INSTALLER_ICON "${CMAKE_SOURCE_DIR}\\OpenFlipper\\Icons\\OpenFlipper_Icon_128x128x32.ico" CACHE FILEPATH "Path to the Executables Icon" )
    ENDIF(NOT APPLE_INSTALLER_ICON )

    IF ( NOT APPLE_INSTALLER_IMAGE_ICON )
        # option to set the used Icon for OpenFlipper
Jan Möbius's avatar
Jan Möbius committed
217
        set ( APPLE_INSTALLER_IMAGE_ICON "${CMAKE_SOURCE_DIR}/OpenFlipper/installer/mac/installer.bmp" CACHE FILEPATH "Path to the Installer Image Icon ( This has to be a bmp )" )
Jan Möbius's avatar
Jan Möbius committed
218
219
    ENDIF(NOT APPLE_INSTALLER_IMAGE_ICON )

Jan Möbius's avatar
Jan Möbius committed
220
221
222
223
224
    IF ( NOT APPLE_LICENSE_FILE )
        # option to set the used License file for OpenFlipper
        set ( APPLE_LICENSE_FILE "${CMAKE_SOURCE_DIR}\\OpenFlipper\\License.txt" CACHE FILEPATH "Path to the License file for installer" )
    ENDIF(NOT APPLE_LICENSE_FILE )

Jan Möbius's avatar
Jan Möbius committed
225
226
227
228
229
  endif()

  set (CPACK_NSIS_MUI_ICON ${APPLE_INSTALLER_ICON} )

  # we need a real uninstaller icon here and we have to define both to make the installer icon work
230
  set (CPACK_NSIS_MUI_UNIICON "${APPLE_INSTALLER_ICON}")
Jan Möbius's avatar
Jan Möbius committed
231
232
233
234

  set (CPACK_PACKAGE_ICON "${APPLE_INSTALLER_IMAGE_ICON}")


Jan Möbius's avatar
Jan Möbius committed
235
  # apple Drag'n'Drop installer package
236
237
  set (CPACK_GENERATOR "DragNDrop")
#  set (CPACK_GENERATOR "DragNDrop;TGZ")
Jan Möbius's avatar
Jan Möbius committed
238
239
  

Jan Möbius's avatar
Jan Möbius committed
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
endif ()

# has to be last
if ( NOT WIN32)
#  set (CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP "true")
#  include (InstallRequiredSystemLibraries)
#  install (PROGRAMS ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS} DESTINATION ${ACG_PROJECT_BINDIR})
#else ()
  include (InstallRequiredSystemLibraries)
endif ()


include (CPack)

if (NOT WIN32 AND NOT APPLE)
  # no binary target for linux
  file (REMOVE "${CMAKE_BINARY_DIR}/CPackConfig.cmake")
endif ()

# cmake doesn't create a source package target, so we have to add our own
if (EXISTS "${CMAKE_BINARY_DIR}/CPackSourceConfig.cmake")
  add_custom_target (PACKAGE_SOURCE
    ${CMAKE_CPACK_COMMAND} --config "${CMAKE_BINARY_DIR}/CPackSourceConfig.cmake"
  )
endif ()