~ubuntu-branches/ubuntu/wily/kid3/wily

« back to all changes in this revision

Viewing changes to src/app/qt/CMakeLists.txt

  • Committer: Package Import Robot
  • Author(s): Mark Purcell, Patrick Matthäi, Mark Purcell
  • Date: 2013-11-30 15:44:59 UTC
  • mfrom: (1.1.16) (2.1.18 sid)
  • Revision ID: package-import@ubuntu.com-20131130154459-s6lpalx8yy2zq7gx
Tags: 3.0.2-1
* New upstream release 

[ Patrick Matthäi ]
* New upstream release.
  - Add new libreadline-dev build dependency.
* Don't explicitly request xz compression - dpkg 1.17 does this by default.
* Bump Standards-Version to 3.9.5 (no changes needed).
* Fix Vcs-Browser control field.

[ Mark Purcell ]
* Switch to dh - reduce debian/rules bloat
* kid3 Replaces kid3-qt - low popcon, reduce archive bloat
* Fix vcs-field-not-canonical
* debian/compat -> 9
* Update Description:

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
set(qt_SRCS
 
2
  mainqt.cpp
 
3
  platformtools.cpp
 
4
  kid3mainwindow.cpp
 
5
  recentfilesmenu.cpp
 
6
  browserdialog.cpp
 
7
  messagedialog.cpp
 
8
  configdialog.cpp
 
9
  mainwindowconfig.cpp
 
10
  shortcutsmodel.cpp
 
11
  shortcutsdelegate.cpp
 
12
)
 
13
set(qt_MOC_HDRS
 
14
  kid3mainwindow.h
 
15
  recentfilesmenu.h
 
16
  browserdialog.h
 
17
  messagedialog.h
 
18
  configdialog.h
 
19
  shortcutsmodel.h
 
20
  shortcutsdelegate.h
 
21
)
 
22
qt4_wrap_cpp(qt_GEN_MOC_SRCS ${qt_MOC_HDRS})
 
23
set(qt_SRCS ${qt_SRCS} ${qt_GEN_MOC_SRCS})
 
24
 
 
25
if (APPLE)
 
26
  # Icon and properties for .plist file
 
27
  set(MACOSX_BUNDLE_BUNDLE_NAME "Kid3")
 
28
  set(MACOSX_BUNDLE_ICON_FILE kid3.icns)
 
29
  set(MACOSX_BUNDLE_SHORT_VERSION_STRING ${CPACK_PACKAGE_VERSION})
 
30
  set(MACOSX_BUNDLE_GUI_IDENTIFIER "net.sourceforge.kid3")
 
31
  set(MACOSX_BUNDLE_COPYRIGHT "Copyright (c) 2003-${RELEASE_YEAR} Urs Fleisch")
 
32
  set_source_files_properties(kid3.icns
 
33
    PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
 
34
  set(qt_SRCS ${qt_SRCS} kid3.icns)
 
35
  set_source_files_properties(qt.conf
 
36
    PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
 
37
  set(qt_SRCS ${qt_SRCS} qt.conf)
 
38
elseif (WIN32)
 
39
  if (MINGW)
 
40
    # support for Windows resource files with MinGW
 
41
    set(CMAKE_RC_COMPILER_INIT windres)
 
42
    enable_language(RC)
 
43
    set(CMAKE_RC_COMPILE_OBJECT
 
44
      "<CMAKE_RC_COMPILER> <FLAGS> -O coff <DEFINES> -i <SOURCE> -o <OBJECT>")
 
45
  endif (MINGW)
 
46
  # add Windows resource file with icon
 
47
  set(qt_SRCS ${qt_SRCS} kid3win.rc)
 
48
endif (APPLE)
 
49
 
 
50
if (UNIX AND NOT APPLE)
 
51
  find_program(GZIP_PROGRAM gzip)
 
52
  # install desktop file and icons for Linux
 
53
  add_custom_command(OUTPUT kid3-qt.desktop
 
54
    COMMAND ${PERL_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/fixdesktop.pl
 
55
      <${CMAKE_CURRENT_SOURCE_DIR}/../kid3.desktop >kid3-qt.desktop
 
56
    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../kid3.desktop
 
57
  )
 
58
  add_custom_target("desktop-file" ALL DEPENDS kid3-qt.desktop)
 
59
  install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kid3-qt.desktop
 
60
    DESTINATION "${WITH_DATAROOTDIR}/applications")
 
61
  if (GZIP_PROGRAM)
 
62
    add_custom_command(OUTPUT kid3-qt.svg
 
63
      COMMAND ${GZIP_PROGRAM} -cd ${CMAKE_CURRENT_SOURCE_DIR}/../hisc-app-kid3.svgz >kid3-qt.svg
 
64
      DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../hisc-app-kid3.svgz
 
65
    )
 
66
    set(qt_SRCS ${qt_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/kid3-qt.svg)
 
67
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kid3-qt.svg
 
68
            DESTINATION "${WITH_DATAROOTDIR}/icons/hicolor/scalable/apps")
 
69
  else (GZIP_PROGRAM)
 
70
    install(FILES ../hisc-app-kid3.svgz
 
71
            DESTINATION "${WITH_DATAROOTDIR}/icons/hicolor/scalable/apps"
 
72
            RENAME kid3-qt.svgz)
 
73
  endif (GZIP_PROGRAM)
 
74
  install(FILES ../hi48-app-kid3.png
 
75
          DESTINATION "${WITH_DATAROOTDIR}/icons/hicolor/48x48/apps"
 
76
          RENAME kid3-qt.png)
 
77
  install(FILES ../hi32-app-kid3.png
 
78
          DESTINATION "${WITH_DATAROOTDIR}/icons/hicolor/32x32/apps"
 
79
          RENAME kid3-qt.png)
 
80
  install(FILES ../hi16-app-kid3.png
 
81
          DESTINATION "${WITH_DATAROOTDIR}/icons/hicolor/16x16/apps"
 
82
          RENAME kid3-qt.png)
 
83
elseif (APPLE)
 
84
  install(FILES ../hi48-app-kid3.png
 
85
          DESTINATION ${WITH_DATAROOTDIR}
 
86
          RENAME kid3.png)
 
87
endif (UNIX AND NOT APPLE)
 
88
 
 
89
add_definitions(${QT_DEFINITIONS} ${QT_EXECUTABLE_COMPILE_FLAGS})
 
90
set(qt_RESOURCES kid3.qrc)
 
91
qt4_add_resources(qt_GEN_RCS ${qt_RESOURCES})
 
92
add_executable(${KID3_EXECUTABLE} MACOSX_BUNDLE WIN32
 
93
  ${qt_SRCS} ${qt_GEN_RCS})
 
94
 
 
95
target_link_libraries(${KID3_EXECUTABLE} kid3-gui -lstdc++)
 
96
 
 
97
if (APPLE)
 
98
  configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../../../macosx/Info.plist.in
 
99
                 ${CMAKE_CURRENT_BINARY_DIR}/Info.plist)
 
100
  set_target_properties(${KID3_EXECUTABLE} PROPERTIES
 
101
      MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_BINARY_DIR}/Info.plist)
 
102
endif (APPLE)
 
103
 
 
104
install(TARGETS ${KID3_EXECUTABLE}
 
105
  BUNDLE DESTINATION .
 
106
  RUNTIME DESTINATION ${WITH_BINDIR})
 
107
 
 
108
if (APPLE OR WIN32)
 
109
 
 
110
  # Put Qt libraries and plugins into installation package to create a
 
111
  # standalone bundle on Mac OS X and Windows
 
112
  set(plugin_dest_dir ${WITH_BINDIR})
 
113
  set(bundle_app
 
114
   "\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${WITH_BINDIR}/${KID3_EXECUTABLE}")
 
115
  if (APPLE)
 
116
    set(plugin_dest_dir kid3.app/Contents/PlugIns)
 
117
    set(bundle_app "\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/kid3.app")
 
118
  endif (APPLE)
 
119
  if (WIN32)
 
120
    set(bundle_app
 
121
      "\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${WITH_BINDIR}/kid3.exe")
 
122
  endif (WIN32)
 
123
  string(REPLACE "/./" "/" bundle_app ${bundle_app})
 
124
 
 
125
  # Install Qt JPEG and Phonon plugins
 
126
  install(DIRECTORY "${QT_PLUGINS_DIR}/imageformats"
 
127
    DESTINATION ${plugin_dest_dir}
 
128
    FILES_MATCHING PATTERN "*jpeg${CMAKE_SHARED_LIBRARY_SUFFIX}"
 
129
                   PATTERN "*jpeg4${CMAKE_SHARED_LIBRARY_SUFFIX}")
 
130
 
 
131
  if (HAVE_QT5)
 
132
    if (APPLE)
 
133
      install(DIRECTORY "${QT_PLUGINS_DIR}/platforms"
 
134
        DESTINATION kid3.app/Contents/MacOS
 
135
        FILES_MATCHING PATTERN "libqcocoa${CMAKE_SHARED_LIBRARY_SUFFIX}")
 
136
      install(DIRECTORY "${QT_PLUGINS_DIR}/mediaservice"
 
137
        DESTINATION ${plugin_dest_dir}
 
138
        FILES_MATCHING PATTERN "libqavfmediaplayer${CMAKE_SHARED_LIBRARY_SUFFIX}")
 
139
    elseif (WIN32)
 
140
      install(DIRECTORY "${QT_PLUGINS_DIR}/platforms"
 
141
        DESTINATION ${plugin_dest_dir}
 
142
        FILES_MATCHING PATTERN "qwindows${CMAKE_SHARED_LIBRARY_SUFFIX}")
 
143
      install(DIRECTORY "${QT_PLUGINS_DIR}/mediaservice"
 
144
        DESTINATION ${plugin_dest_dir}
 
145
        FILES_MATCHING PATTERN "dsengine${CMAKE_SHARED_LIBRARY_SUFFIX}")
 
146
    endif (APPLE)
 
147
  endif (HAVE_QT5)
 
148
 
 
149
  if (HAVE_PHONON)
 
150
    install(DIRECTORY "${QT_PLUGINS_DIR}/phonon_backend"
 
151
      DESTINATION ${plugin_dest_dir}
 
152
      FILES_MATCHING
 
153
        PATTERN "*d4${CMAKE_SHARED_LIBRARY_SUFFIX}" EXCLUDE
 
154
        PATTERN "*${CMAKE_SHARED_LIBRARY_SUFFIX}")
 
155
  endif (HAVE_PHONON)
 
156
 
 
157
  # Install and fix up all dependencies of the executable and the plugins.
 
158
  # On Mac OS X only keep the i386 code in the Qt libraries and plugins.
 
159
  install(CODE "
 
160
    file(GLOB_RECURSE QTPLUGINS
 
161
      \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${plugin_dest_dir}/*${CMAKE_SHARED_LIBRARY_SUFFIX}\")
 
162
    if (APPLE)
 
163
      file(GLOB_RECURSE QTPLATFORMPLUGINS
 
164
        \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/kid3.app/Contents/MacOS/platforms/*${CMAKE_SHARED_LIBRARY_SUFFIX}\")
 
165
      set(QTPLUGINS \"\${QTPLUGINS};\${QTPLATFORMPLUGINS}\")
 
166
    endif (APPLE)
 
167
    file(GLOB_RECURSE KID3PLUGINS
 
168
      \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${WITH_PLUGINSDIR}/*${CMAKE_SHARED_LIBRARY_SUFFIX}\")
 
169
    include(BundleUtilities)
 
170
    set(bundle_libs \"\${QTPLUGINS};\${KID3PLUGINS}\")
 
171
    if (APPLE AND BUILD_CLI_APP)
 
172
      set(bundle_libs \"\${bundle_libs};\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${WITH_LIBDIR}/kid3-cli\")
 
173
    endif (APPLE AND BUILD_CLI_APP)
 
174
    fixup_bundle(\"${bundle_app}\" \"\${bundle_libs}\" \"${QT_LIBRARY_DIR}\")
 
175
    if (APPLE)
 
176
      file(GLOB_RECURSE _qtlibs \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/kid3.app/Contents/Frameworks/*Qt*\")
 
177
      file(GLOB_RECURSE _plugins \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/kid3.app/Contents/PlugIns/*.dylib\")
 
178
      foreach (_universalBinary \${_plugins} \${_qtlibs})
 
179
        execute_process(COMMAND lipo \${_universalBinary} -output \${_universalBinary} -thin i386)
 
180
      endforeach (_universalBinary \${plugins})
 
181
    endif (APPLE)
 
182
    ")
 
183
 
 
184
endif (APPLE OR WIN32)
 
185
 
 
186
if (WIN32)
 
187
  if (NOT HAVE_QT5)
 
188
    # Unfortunately, the binutils which come with the gcc-4.4.0 in the MinGW
 
189
    # for Qt generate an executable which cannot be analyzed with dumpbin.
 
190
    # This happens when Kid3 is linked with libav (used with Chromaprint).
 
191
    # Therefore, the dependencies for kid3.exe are not added to the bundle.
 
192
    # This workaround adds the missing files.
 
193
    install(FILES "${QT_BINARY_DIR}/QtNetwork4.dll"
 
194
                  "${QT_BINARY_DIR}/QtXml4.dll"
 
195
            DESTINATION ${WITH_BINDIR})
 
196
  else (NOT HAVE_QT5)
 
197
    if (EXISTS "${_qt5Dir}/../ported-x32/bin/libjpeg-8.dll")
 
198
      install(FILES "${_qt5Dir}/../ported-x32/bin/libjpeg-8.dll"
 
199
              DESTINATION ${WITH_BINDIR})
 
200
    endif ()
 
201
    string(TOUPPER ${CMAKE_BUILD_TYPE} _build_type_uc)
 
202
    get_target_property(_qt5xml_location Qt5::Xml IMPORTED_LOCATION_${_build_type_uc})
 
203
    install(FILES ${_qt5xml_location}
 
204
            DESTINATION ${WITH_BINDIR})
 
205
  endif (NOT HAVE_QT5)
 
206
endif (WIN32)