~ubuntu-branches/ubuntu/saucy/darktable/saucy

« back to all changes in this revision

Viewing changes to .pc/0001-Fixes-the-cmake-for-binary-package-build.patch/CMakeLists.txt

  • Committer: Bazaar Package Importer
  • Author(s): David Bremner
  • Date: 2011-04-14 23:42:12 UTC
  • Revision ID: james.westby@ubuntu.com-20110414234212-o5y5smmy8yt3ix13
Tags: 0.8-2
Enable cmake option BINARY_PACKAGE_BUILD, which disables build host
specific optimizations.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
project(darktable CXX C)
 
2
cmake_minimum_required(VERSION 2.6)
 
3
cmake_policy(VERSION 2.6)
 
4
 
 
5
option(USE_GCONF_BACKEND "Detect and use gconf backend if available." ON)
 
6
option(USE_CAMERA_SUPPORT "Detect and use camera support if available." ON)
 
7
option(USE_OPENMP "Use openmp threading support." ON)
 
8
option(USE_DARKTABLE_PROFILING OFF)
 
9
option(DONT_USE_RAWSPEED "Dont compile rawspeed backend." OFF)
 
10
option(DONT_INSTALL_GCONF_SCHEMAS "Dont install gconf schemas, usefull for package creation." OFF)
 
11
option(BUILD_USERMANUAL "Build all the versions of the usermanual." OFF)
 
12
option(INSTALL_IOP_EXPERIMENTAL "Also install unstable, unfinished, broken, and likely-to-change-soon plugins." OFF)
 
13
option(INSTALL_IOP_LEGACY "Also install old plugins we want to get rid of." OFF)
 
14
 
 
15
#
 
16
# Set platform defaults...
 
17
#
 
18
if(APPLE)
 
19
        message("-- Mac OSX build detected, setting default features")
 
20
        set(USE_GCONF_BACKEND OFF) 
 
21
        set(USE_CAMERA_SUPPORT OFF)
 
22
        
 
23
        # setup mac ports path...
 
24
        set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} /opt/local/lib)
 
25
        set(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} /opt/local/include)
 
26
        
 
27
        set(LIBS ${LIBS} -Wl,-framework -Wl,Carbon)
 
28
endif(APPLE)
 
29
 
 
30
if(WIN32)
 
31
 message("-- Win32 build detected, setting default features")
 
32
  set(USE_GCONF_BACKEND OFF) 
 
33
  set(USE_CAMERA_SUPPORT OFF)
 
34
endif(WIN32)
 
35
 
 
36
# Check if this is source package build
 
37
if(NOT IS_DIRECTORY ${CMAKE_SOURCE_DIR}/.git)
 
38
        set(SOURCE_PACKAGE 1)
 
39
endif()
 
40
 
 
41
#
 
42
# Set package version
 
43
#
 
44
if(NOT SOURCE_PACKAGE)
 
45
        message("-- Determining version")
 
46
        exec_program(git ${CMAKE_CURRENT_SOURCE_DIR} ARGS describe --tags HEAD | "sed 's,^release-,,;s,-,+,;s,-,~,;'" OUTPUT_VARIABLE PROJECT_VERSION)
 
47
        configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/version.cmake.cmake" "${CMAKE_CURRENT_BINARY_DIR}/version.cmake" @ONLY)
 
48
else(NOT SOURCE_PACKAGE)
 
49
        include(cmake/version.cmake)
 
50
endif()
 
51
 
 
52
#
 
53
# Initial cmake/debian/postinst and prerm script for debian package
 
54
#
 
55
make_directory(${CMAKE_CURRENT_SOURCE_DIR}/packaging/debian)
 
56
 
 
57
 
 
58
#
 
59
# Avoid source tree pollution
 
60
#
 
61
If(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
 
62
        message(FATAL_ERROR "In-source builds are not permitted. Make a separate folder for building:\nmkdir build; cd build; cmake ..\nBefore that, remove the files already created:\nrm -rf CMakeCache.txt CMakeFiles")
 
63
endif(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
 
64
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules/")
 
65
 
 
66
# Add a sensible build type default and warning because empty means no optimization and no debug info.
 
67
if(NOT CMAKE_BUILD_TYPE)
 
68
        message("WARNING: CMAKE_BUILD_TYPE is not defined!\n         Defaulting to CMAKE_BUILD_TYPE=RelWithDebInfo. Use ccmake to set a proper value.")
 
69
        SET(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." FORCE)
 
70
endif(NOT CMAKE_BUILD_TYPE)
 
71
 
 
72
if(WIN32)
 
73
        set(RELATIVE_PATH_FROM_BIN ${CMAKE_INSTALL_PREFIX} CACHE STRING "Relative path to library from binary")
 
74
else(WIN32)
 
75
        set(RELATIVE_PATH_FROM_BIN ${CMAKE_INSTALL_PREFIX} CACHE STRING "Relative path to library from binary")
 
76
endif(WIN32)
 
77
 
 
78
if(WIN32)
 
79
        set(SHARE_INSTALL "." CACHE STRING "Data file install path. Must be a relative path (from CMAKE_INSTALL_PREFIX), with no trailing slash.")
 
80
else(WIN32)
 
81
        if(NOT SHARE_INSTALL)
 
82
                set(SHARE_INSTALL "share/darktable" CACHE STRING "Data file install path. Must be a relative path (from CMAKE_INSTALL_PREFIX), with no trailing slash.")
 
83
        endif(NOT SHARE_INSTALL)
 
84
endif(WIN32)
 
85
 
 
86
mark_as_advanced(SHARE_INSTALL)
 
87
 
 
88
if(WIN32)
 
89
        set(LIB_INSTALL "." CACHE STRING "Library file install path. Must be a relative path (from CMAKE_INSTALL_PREFIX), with no trailing slash.")
 
90
else(WIN32)
 
91
        if(NOT LIB_INSTALL)
 
92
                set( LIB_INSTALL lib${LIB_SUFFIX} CACHE STRING "Library file install path. Must be a relative path (from CMAKE_INSTALL_PREFIX), with no trailing slash.")
 
93
        endif(NOT LIB_INSTALL)
 
94
endif(WIN32)
 
95
 
 
96
mark_as_advanced(LIB_INSTALL)
 
97
 
 
98
#need to put here do setting LOCALE_DIR variable
 
99
find_package(Gettext)
 
100
if(Gettext_FOUND)
 
101
        if(NOT LOCALE_DIR)
 
102
                if(WIN32)
 
103
                        SET(LOCALE_DIR "bin/locale")
 
104
                elseif(APPLE)
 
105
                        SET(LOCALE_DIR "share/locale")
 
106
                else()#other os
 
107
                        SET(LOCALE_DIR "${CMAKE_INSTALL_PREFIX}/share/locale")
 
108
                endif(WIN32)
 
109
        endif(NOT LOCALE_DIR)
 
110
        
 
111
        if(NOT LOCALE_DIR)
 
112
                message(QUIET "Set LOCALE_DIR to path to get Gettext working")
 
113
        else()
 
114
                find_package(Msgfmt)
 
115
                if(Msgfmt_FOUND)
 
116
                        message(STATUS "Found msgfmt to convert language file. Translation enabled")
 
117
                        add_subdirectory(po)
 
118
                else()
 
119
                        message(STATUS "Cannot find msgfmt to convert language file. Translation won't be enabled")
 
120
                endif()
 
121
        endif(NOT LOCALE_DIR)
 
122
endif(Gettext_FOUND)
 
123
 
 
124
#
 
125
# Test SSE level
 
126
#
 
127
# if(NOT USE_SSE_FLAG)
 
128
#       set(SSE_C_TESTS "sse4" "sse3" "sse2" "sse")
 
129
#       message("-- Checking SSE instructions support by current CPU")
 
130
#       foreach(sse_test ${SSE_C_TESTS})
 
131
#               if(NOT SSE_FOUND)
 
132
#                       if(WIN32)
 
133
#                               set(SSE_CHECK_COMMAND "FAILURE")
 
134
#                       elseif(APPLE)
 
135
#                               set(SSE_CHECK_COMMAND sysctl -a | grep ${sse_test})
 
136
#                       else()#other os
 
137
#                               set(SSE_CHECK_COMMAND grep ${sse_test} /proc/cpuinfo)
 
138
#                       endif(WIN32)
 
139
#                       execute_process(COMMAND ${SSE_CHECK_COMMAND} RESULT_VARIABLE ret_var OUTPUT_VARIABLE out_var)
 
140
#                       
 
141
#                       if(ret_var EQUAL 0) # grep returns 0 on success
 
142
#                               set(SSE_FOUND TRUE)
 
143
#                               message("--  ${sse_test} detected and working.")
 
144
#                               set(USE_SSE_SET ${sse_test})
 
145
#                       endif(ret_var EQUAL 0)
 
146
#                       
 
147
#               endif(NOT SSE_FOUND)
 
148
#       endforeach(sse_test)
 
149
# endif(NOT USE_SSE_FLAG)
 
150
 
151
# # set the SSE
 
152
# if(USE_SSE_SET)
 
153
#       set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} "-m${USE_SSE_SET}")
 
154
# endif(USE_SSE_SET)
 
155
 
 
156
# Path to install gconf schemas into.
 
157
if(NOT DT_GCONF_SCHEMA_DIR)
 
158
  # a home install would use: "xml:readwrite:${HOME}/.gconf"
 
159
  # default gconftool-2 path (gconftool-2 --get-default-source), mostly "xml:merged:/etc/gconf/gconf.xml.defaults"
 
160
  execute_process (COMMAND gconftool-2 --get-default-source OUTPUT_VARIABLE DT_GCONF_SCHEMA_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
 
161
endif(NOT DT_GCONF_SCHEMA_DIR)
 
162
 
 
163
# setup some theme specific variables
 
164
set(THEME hicolor)
 
165
set(THEME_DIRECTORY ${CMAKE_INSTALL_PREFIX}/share/icons/${THEME})
 
166
 
 
167
# lets continue into build directories
 
168
add_subdirectory(src)
 
169
add_subdirectory(data)
 
170
add_subdirectory(doc)
 
171
 
 
172
include(cmake/darktable-packaging.cmake)
 
173