2 cmake_minimum_required (VERSION 2.8.0)
6 set (CMAKE_VERBOSE_MAKEFILE false)
8 add_definitions (-Wall)
9 #add_definitions (-Werror)
14 set (VERSION_LONG "${VERSION}")
17 if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git")
18 find_program (GIT_PROG "git")
21 COMMAND ${GIT_PROG} "describe" "${BRANCH}"
23 OUTPUT_STRIP_TRAILING_WHITESPACE)
25 set (VERSION_LONG "${DESCR}")
30 find_program (DATE_PROG "date")
33 COMMAND ${DATE_PROG} "+%Y-%m-%d"
35 OUTPUT_STRIP_TRAILING_WHITESPACE)
37 set (VERSION_LONG "${VERSION_LONG} built on ${DATE}")
41 set (HOST_SETUP "${CMAKE_SYSTEM_NAME} ${CMAKE_SYSTEM_PROCESSOR}")
42 set (VERSION_LONG "${VERSION_LONG} for ${HOST_SETUP}")
44 # Set default build type.
46 if (NOT CMAKE_BUILD_TYPE)
47 set (CMAKE_BUILD_TYPE "debug")
50 # Set default for WITHOUT_DESKTOP.
52 if (NOT WITHOUT_DESKTOP)
53 set (WITHOUT_DESKTOP false)
56 # Set default for WITHOUT_QM.
59 set (WITHOUT_QM false)
62 # Set default for WITHOUT_DOC.
65 set (WITHOUT_DOC false)
71 "${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake.in"
72 "${CMAKE_CURRENT_BINARY_DIR}/config.h"
78 "${CMAKE_CURRENT_SOURCE_DIR}/nomnom.desktop.in"
79 "${CMAKE_CURRENT_BINARY_DIR}/nomnom.desktop"
131 set (nomnom_rc rc/nomnom.qrc)
134 file (GLOB nomnom_ts "${CMAKE_CURRENT_SOURCE_DIR}/tr/*.ts")
139 find_package (Qt4 4.5.0 COMPONENTS QtCore QtGui QtScript REQUIRED)
140 include (${QT_USE_FILE})
142 qt4_add_resources (nomnom_rc_src ${nomnom_rc})
144 qt4_add_translation (nomnom_qm ${nomnom_ts})
146 qt4_wrap_ui (nomnom_ui_hdr ${nomnom_ui})
147 qt4_wrap_cpp (nomnom_moc_src ${nomnom_moc_hdr})
149 # http://www.vtk.org/Wiki/CMake_2.8.0_Docs : qt4_create_translation
153 include_directories (
155 ${CMAKE_CURRENT_SOURCE_DIR}/src
156 ${CMAKE_CURRENT_SOURCE_DIR}/src/i
168 set (exec_components ${exec_components} ${nomnom_qm})
171 add_executable (nomnom ${exec_components})
180 message (STATUS "nomnom version : ${VERSION}")
181 message (STATUS "host setup : ${HOST_SETUP}")
182 message (STATUS "install prefix : ${CMAKE_INSTALL_PREFIX}")
183 message (STATUS "build type : ${CMAKE_BUILD_TYPE}")
184 message (STATUS " (debug, release, relwithdebinfo, minsizerel)")
185 message (STATUS "compiler : ${CMAKE_CXX_COMPILER}")
186 message (STATUS "linker : ${CMAKE_LINKER}")
187 message (STATUS "make program : ${CMAKE_MAKE_PROGRAM}")
189 message (STATUS "date program : ${DATE_PROG}")
191 message (STATUS "date program : (not found)")
193 message (STATUS "verbose make : ${CMAKE_VERBOSE_MAKEFILE}")
194 message (STATUS "without desktop : ${WITHOUT_DESKTOP}")
195 message (STATUS "without transl. : ${WITHOUT_QM}")
196 message (STATUS "without doc : ${WITHOUT_DOC}")
199 # Force these variables to be written to cache.
201 set (CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE PATH
202 "Install destination for ${PROJECT_NAME}" FORCE)
204 set (CMAKE_BUILD_TYPE "${CMAKE_BUILD_TYPE}" CACHE STRING
205 "Type of build: none, debug, release, relwithdebinfo minsizerel" FORCE)
207 set (CMAKE_VERBOSE_MAKEFILE "${CMAKE_VERBOSE_MAKEFILE}" CACHE BOOL
208 "Build with verbose makefiles: true, false" FORCE)
210 set (WITHOUT_DESKTOP "${WITHOUT_DESKTOP}" CACHE BOOL
211 "Install without desktop integration files: true, false" FORCE)
213 set (WITHOUT_QM "${WITHOUT_QM}" CACHE BOOL
214 "Install without translation files: true, false" FORCE)
216 set (WITHOUT_DOC "${WITHOUT_DOC}" CACHE BOOL
217 "Install without documentation: true, false" FORCE)
221 target_link_libraries (nomnom ${QT_LIBRARIES})
225 include (InstallRequiredSystemLibraries)
227 set (CPACK_SOURCE_PACKAGE_FILE_NAME
233 set (CPACK_PACKAGE_FILE_NAME ${CPACK_SOURCE_PACKAGE_FILE_NAME})
234 set (CPACK_GENERATOR "TGZ")
235 set (CPACK_SOURCE_GENERATOR "TGZ")
236 set (CPACK_RESOURCE_FILE_LICENSE ${CMAKE_CURRENT_SOURCE_DIR}/COPYING)
237 set (CPACK_RESOURCE_FILE_README ${CMAKE_CURRENT_SOURCE_DIR}/README)
239 set (CPACK_SOURCE_IGNORE_FILES
252 # Notice the inclusion here, after setting the cpack variables.
258 "${CMAKE_CURRENT_BINARY_DIR}/nomnom" DESTINATION bin/)
261 install (FILES ${nomnom_qm} DESTINATION share/nomnom/tr/)
264 if (NOT WITHOUT_DESKTOP)
265 install (FILES "${CMAKE_CURRENT_BINARY_DIR}/nomnom.desktop"
266 DESTINATION share/applications/)
268 install (FILES "${CMAKE_CURRENT_SOURCE_DIR}/rc/img/nomnom.png"
269 DESTINATION share/pixmaps/)
275 "${CMAKE_CURRENT_SOURCE_DIR}/uninstall.cmake.in"
276 "${CMAKE_CURRENT_BINARY_DIR}/uninstall.cmake"
282 "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/uninstall.cmake"