2 cmake_minimum_required (VERSION 2.8.0)
6 add_definitions (-Wall)
7 #add_definitions (-Werror)
12 set (VERSION_LONG "${VERSION}")
15 if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git")
16 find_program (GIT_PROG "git")
19 COMMAND ${GIT_PROG} "describe" "${BRANCH}"
21 OUTPUT_STRIP_TRAILING_WHITESPACE)
23 set (VERSION_LONG "${DESCR}")
28 find_program (DATE_PROG "date")
31 COMMAND ${DATE_PROG} "+%Y-%m-%d"
33 OUTPUT_STRIP_TRAILING_WHITESPACE)
35 set (VERSION_LONG "${VERSION_LONG} built on ${DATE}")
41 find_program (GZIP_PROG "gzip")
45 find_program (POD2MAN_PROG "pod2man")
47 add_custom_target (pod2man
48 "${POD2MAN_PROG}" -c "NomNom manual" -n NomNom -s 1 -r ${VERSION}
49 ${CMAKE_CURRENT_SOURCE_DIR}/man1/nomnom.1.pod
50 ${CMAKE_CURRENT_BINARY_DIR}/man1/nomnom.1
54 set (HOST_SETUP "${CMAKE_SYSTEM_NAME} ${CMAKE_SYSTEM_PROCESSOR}")
55 set (VERSION_LONG "${VERSION_LONG} for ${HOST_SETUP}")
57 # Set build type default.
59 if (NOT CMAKE_BUILD_TYPE)
60 set (CMAKE_BUILD_TYPE "debug")
63 # Set verbose makefile default.
65 if (NOT CMAKE_VERBOSE_MAKEFILE)
66 set (CMAKE_VERBOSE_MAKEFILE false)
69 # Set WITHOUT_DESKTOP default.
71 if (NOT WITHOUT_DESKTOP)
72 set (WITHOUT_DESKTOP false)
75 # Set WITHOUT_QM default.
78 set (WITHOUT_QM false)
81 # Set WITHOUT_DOC default.
84 set (WITHOUT_DOC false)
90 "${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake.in"
91 "${CMAKE_CURRENT_BINARY_DIR}/config.h"
97 "${CMAKE_CURRENT_SOURCE_DIR}/nomnom.desktop.in"
98 "${CMAKE_CURRENT_BINARY_DIR}/nomnom.desktop"
105 src/i/Preferences.cpp
106 src/i/YoutubeFeed.cpp
150 set (nomnom_rc rc/nomnom.qrc)
153 file (GLOB nomnom_ts "${CMAKE_CURRENT_SOURCE_DIR}/tr/*.ts")
158 find_package (Qt4 4.5.0 COMPONENTS QtCore QtGui QtScript REQUIRED)
159 include (${QT_USE_FILE})
161 qt4_add_resources (nomnom_rc_src ${nomnom_rc})
163 qt4_add_translation (nomnom_qm ${nomnom_ts})
165 qt4_wrap_ui (nomnom_ui_hdr ${nomnom_ui})
166 qt4_wrap_cpp (nomnom_moc_src ${nomnom_moc_hdr})
168 # http://www.vtk.org/Wiki/CMake_2.8.0_Docs : qt4_create_translation
171 "${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH}")
175 include_directories (
177 ${CMAKE_CURRENT_SOURCE_DIR}/src
178 ${CMAKE_CURRENT_SOURCE_DIR}/src/i
190 set (exec_components ${exec_components} ${nomnom_qm})
193 add_executable (nomnom ${exec_components})
202 message (STATUS "Configured:")
203 message (STATUS " NomNom ${VERSION_LONG}")
205 message (STATUS "Found:")
206 message (STATUS " Compiler: ${CMAKE_CXX_COMPILER}")
207 message (STATUS " Linker : ${CMAKE_LINKER}")
208 message (STATUS " Make : ${CMAKE_MAKE_PROGRAM}")
209 message (STATUS " Host : ${HOST_SETUP}")
210 message (STATUS " Qt : ${qt_VERSION}")
212 message (STATUS "Options:")
213 message (STATUS " Install prefix : ${CMAKE_INSTALL_PREFIX}")
214 message (STATUS " Verbose make : ${CMAKE_VERBOSE_MAKEFILE}")
215 message (STATUS " Without desktop: ${WITHOUT_DESKTOP}")
216 message (STATUS " Without transl.: ${WITHOUT_QM}")
217 message (STATUS " Without doc : ${WITHOUT_DOC}")
218 message (STATUS " Build type : ${CMAKE_BUILD_TYPE}")
219 message (STATUS " (debug, release, relwithdebinfo, minsizerel)")
222 # Force these variables to be written to cache.
224 set (CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE PATH
225 "Install destination for ${PROJECT_NAME}" FORCE)
227 set (CMAKE_BUILD_TYPE "${CMAKE_BUILD_TYPE}" CACHE STRING
228 "Type of build: none, debug, release, relwithdebinfo minsizerel" FORCE)
230 set (CMAKE_VERBOSE_MAKEFILE "${CMAKE_VERBOSE_MAKEFILE}" CACHE BOOL
231 "Build with verbose makefiles: true, false" FORCE)
233 set (WITHOUT_DESKTOP "${WITHOUT_DESKTOP}" CACHE BOOL
234 "Install without desktop integration files: true, false" FORCE)
236 set (WITHOUT_QM "${WITHOUT_QM}" CACHE BOOL
237 "Install without translation files: true, false" FORCE)
239 set (WITHOUT_DOC "${WITHOUT_DOC}" CACHE BOOL
240 "Install without documentation: true, false" FORCE)
244 target_link_libraries (nomnom ${QT_LIBRARIES})
248 include (InstallRequiredSystemLibraries)
250 set (CPACK_SOURCE_PACKAGE_FILE_NAME
256 set (CPACK_PACKAGE_FILE_NAME ${CPACK_SOURCE_PACKAGE_FILE_NAME})
257 set (CPACK_GENERATOR "TGZ")
258 set (CPACK_SOURCE_GENERATOR "TGZ")
259 set (CPACK_RESOURCE_FILE_LICENSE ${CMAKE_CURRENT_SOURCE_DIR}/COPYING)
260 set (CPACK_RESOURCE_FILE_README ${CMAKE_CURRENT_SOURCE_DIR}/README)
262 set (CPACK_SOURCE_IGNORE_FILES
275 # Notice the inclusion here, after setting the cpack variables.
281 "${CMAKE_CURRENT_BINARY_DIR}/nomnom" DESTINATION bin/)
284 install (FILES ${nomnom_qm} DESTINATION share/nomnom/tr/)
287 if (NOT WITHOUT_DESKTOP)
288 install (FILES "${CMAKE_CURRENT_BINARY_DIR}/nomnom.desktop"
289 DESTINATION share/applications/)
291 install (FILES "${CMAKE_CURRENT_SOURCE_DIR}/rc/img/nomnom.xpm"
292 DESTINATION share/pixmaps/)
298 "${CMAKE_CURRENT_SOURCE_DIR}/uninstall.cmake.in"
299 "${CMAKE_CURRENT_BINARY_DIR}/uninstall.cmake"
305 "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/uninstall.cmake"