Merge lp:~kalikiana/midori/cmake into lp:midori

Proposed by Cris Dywan
Status: Merged
Approved by: Paweł Forysiuk
Approved revision: 6369
Merged at revision: 6370
Proposed branch: lp:~kalikiana/midori/cmake
Merge into: lp:midori
Diff against target: 956 lines (+878/-2)
14 files modified
CMakeLists.txt (+184/-0)
cmake/ContainTest.cmake (+18/-0)
cmake/FindIntltool.cmake (+30/-0)
cmake/FindVala.cmake (+18/-0)
cmake/GLibHelpers.cmake (+71/-0)
cmake/ParseArguments.cmake (+36/-0)
cmake/ValaPrecompile.cmake (+236/-0)
data/CMakeLists.txt (+34/-0)
extensions/CMakeLists.txt (+92/-0)
icons/CMakeLists.txt (+12/-0)
midori/CMakeLists.txt (+64/-0)
po/CMakeLists.txt (+18/-0)
po/POTFILES.in (+0/-2)
tests/CMakeLists.txt (+65/-0)
To merge this branch: bzr merge lp:~kalikiana/midori/cmake
Reviewer Review Type Date Requested Status
Paweł Forysiuk Approve
Review via email: mp+180722@code.launchpad.net

Commit message

Implement CMake build setup

To post a comment you must log in.
Revision history for this message
Paweł Forysiuk (tuxator) :
review: Approve
Revision history for this message
RabbitBot (rabbitbot-a) wrote :

Attempt to merge into lp:midori failed due to conflicts:

text conflict in po/POTFILES.in

Revision history for this message
RabbitBot (rabbitbot-a) wrote :

There are additional revisions which have not been approved in review. Please seek review and approval of these new revisions.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== added file 'CMakeLists.txt'
--- CMakeLists.txt 1970-01-01 00:00:00 +0000
+++ CMakeLists.txt 2013-09-01 17:11:24 +0000
@@ -0,0 +1,184 @@
1# Copyright (C) 2013 Christian Dywan <christian@twotoasts.de>
2
3cmake_minimum_required(VERSION 2.6)
4cmake_policy(VERSION 2.6)
5project(midori C)
6add_definitions("-DPACKAGE_NAME=\"${CMAKE_PROJECT_NAME}\"")
7add_definitions("-DPACKAGE_BUGREPORT=\"https://bugs.launchpad.net/midori\"")
8
9set(VERSION 0.5.5)
10add_definitions("-DPACKAGE_VERSION=\"${VERSION}\"")
11add_definitions("-DMIDORI_VERSION_SUFFIX=\"${VERSION}\"")
12
13string(REPLACE "." ";" VERSION_LIST ${VERSION})
14LIST(GET VERSION_LIST 0 MIDORI_MAJOR_VERSION)
15add_definitions("-DMIDORI_MAJOR_VERSION=${MIDORI_MAJOR_VERSION}")
16LIST(GET VERSION_LIST 1 MIDORI_MINOR_VERSION)
17add_definitions("-DMIDORI_MINOR_VERSION=${MIDORI_MINOR_VERSION}")
18LIST(GET VERSION_LIST 2 MIDORI_MICRO_VERSION)
19add_definitions("-DMIDORI_MICRO_VERSION=${MIDORI_MICRO_VERSION}")
20
21list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
22# Disallow building during install to avoid permission problems
23set(CMAKE_SKIP_INSTALL_ALL_DEPENDENCY 1)
24
25include(GNUInstallDirs)
26set(DATADIR ${CMAKE_INSTALL_FULL_DATADIR})
27add_definitions("-DMDATADIR=\"${DATADIR}\"")
28add_definitions("-DSYSCONFDIR=\"${CMAKE_INSTALL_FULL_SYSCONFDIR}\"")
29add_definitions("-DLIBDIR=\"${CMAKE_INSTALL_FULL_LIBDIR}\"")
30add_definitions("-DDOCDIR=\"${CMAKE_INSTALL_FULL_DOCDIR}\"")
31file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/config.h" "/* # generated file (stub) */")
32
33find_file (UNISTD unistd.h)
34if (UNISTD)
35 add_definitions("-DHAVE_UNISTD_H")
36endif ()
37find_file (SIGNAL signal.h)
38if (SIGNAL)
39 add_definitions("-DHAVE_SIGNAL_H")
40endif ()
41
42find_library (X11 X11)
43if (X11)
44 # Pass /usr/X11R6/include for OpenBSD
45 find_file (SCRNSAVER X11/extensions/scrnsaver.h /usr/X11R6/include)
46 find_library (XSS Xss /usr/lib/X11R6/lib)
47 if (SCRNSAVER AND XSS)
48 add_definitions("-DHAVE_X11_EXTENSIONS_SCRNSAVER_H")
49 endif ()
50endif ()
51
52if (WIN32)
53 set(VALAFLAGS ${VALAFLAGS} "-D;HAVE_WIN32")
54endif ()
55
56string(FIND ${CMAKE_SYSTEM_NAME} "FreeBSD" FREEBSD)
57if (FREEBSD GREATER -1)
58 set(VALAFLAGS ${VALAFLAGS} "-D;HAVE_FREEBSD")
59endif ()
60
61if (APPLE)
62 set(VALAFLAGS ${VALAFLAGS} "-D;HAVE_OSX")
63endif ()
64
65find_package(PkgConfig)
66pkg_check_modules(DEPS REQUIRED
67 libxml-2.0>=2.6
68 sqlite3>=3.6.19
69 gmodule-2.0
70 gio-2.0>=2.32.3
71 libsoup-gnome-2.4>=2.27.90
72 )
73add_definitions("-DHAVE_LIBXML")
74add_definitions("-DGIO_VERSION=\"${DEPS_gio-2.0_VERSION}\"")
75add_definitions("-DLIBSOUP_VERSION=\"${DEPS_libsoup-gnome-2.4_VERSION}\"")
76set(PKGS posix linux libxml-2.0 sqlite3 gmodule-2.0 gio-2.0 libsoup-2.4)
77if (${DEPS_libsoup-gnome-2.4_VERSION} VERSION_GREATER "2.34.0")
78 set(VALAFLAGS ${VALAFLAGS} "-D;HAVE_LIBSOUP_2_34_0")
79endif ()
80
81# Always pass >1 module, otherwise we get different variable names
82pkg_check_modules(OPTS gio-2.0 libnotify)
83add_definitions("-DLIBNOTIFY_VERSION=\"${OPTS_libnotify_VERSION}\"")
84set(PKGS ${PKGS} libnotify)
85
86option(USE_GTK3 "Use GTK+3" OFF)
87option(HALF_BRO_INCOM_WEBKIT2 "Serve as a guniea pig" OFF)
88option(USE_ZEITGEIST "Zeitgeist history integration" ON)
89option(USE_GRANITE "Fancy notebook and pop-overs" OFF)
90
91if (USE_GRANITE)
92 if (NOT USE_GTK3 AND NOT HALF_BRO_INCOM_WEBKIT2)
93 set(USE_GTK3 ON)
94 endif ()
95
96 pkg_check_modules(GRANITE granite>=0.2)
97 set(OPTS_INCLUDE_DIRS "${OPTS_INCLUDE_DIRS};${GRANITE_INCLUDE_DIRS}")
98 set(OPTS_LIBRARIES "${OPTS_LIBRARIES};${GRANITE_LIBRARIES}")
99 add_definitions("-DHAVE_GRANITE")
100 add_definitions("-DGRANITE_VERSION=\"${GRANITE_VERSION}\"")
101 set(PKGS ${PKGS} granite)
102else ()
103 add_definitions("-DGRANITE_VERSION=\"No\"")
104endif()
105
106if (USE_ZEITGEIST)
107 pkg_check_modules(ZEITGEIST zeitgeist-1.0>=0.3.14)
108 set(OPTS_INCLUDE_DIRS "${OPTS_INCLUDE_DIRS};${ZEITGEIST_INCLUDE_DIRS}")
109 set(OPTS_LIBRARIES "${OPTS_LIBRARIES};${ZEITGEIST_LIBRARIES}")
110 add_definitions("-DHAVE_ZEITGEIST")
111 set(PKGS ${PKGS} zeitgeist-1.0)
112endif()
113
114if (USE_GTK3)
115 pkg_check_modules(DEPS_GTK REQUIRED
116 gtk+-3.0>=3.0.0
117 webkitgtk-3.0>=1.8.3
118 javascriptcoregtk-3.0
119 )
120 add_definitions("-DGTK_VERSION=\"${DEPS_GTK_gtk+-3.0_VERSION}\"")
121 add_definitions("-DWEBKIT_VERSION=\"${DEPS_GTK_webkitgtk-3.0_VERSION}\"")
122 set(PKGS ${PKGS} gtk+-3.0)
123 set(EXTRA_VAPIS ${EXTRA_VAPIS} "${CMAKE_SOURCE_DIR}/midori/webkitgtk-3.0.vapi")
124 # Always pass >1 module, otherwise we get different variable names
125 pkg_check_modules(OPTS_GTK
126 gio-2.0
127 gcr-3>=2.32
128 )
129 add_definitions("-DGCR_VERSION=\"${OPTS_GTK_gcr-3_VERSION}\"")
130 set(VALAFLAGS ${VALAFLAGS} "-D;HAVE_GTK3")
131elseif (HALF_BRO_INCOM_WEBKIT2)
132 # Note: WebKitGTK+ 2.0.0 matches 1.11.91; 1.11.92 > 2.0.0
133 pkg_check_modules(DEPS_GTK REQUIRED
134 gtk+-3.0>=3.0.0
135 webkit2gtk-3.0>=1.11.91
136 javascriptcoregtk-3.0
137 )
138 add_definitions("-DHAVE_WEBKIT2")
139 add_definitions("-DGTK_VERSION=\"${DEPS_GTK_gtk+-3.0_VERSION}\"")
140 add_definitions("-DWEBKIT_VERSION=\"${DEPS_GTK_webkit2gtk-3.0_VERSION}\"")
141 set(PKGS ${PKGS} gtk+-3.0)
142 set(EXTRA_VAPIS ${EXTRA_VAPIS} "${CMAKE_SOURCE_DIR}/midori/webkit2gtk-3.0.vapi")
143 # Always pass >1 module, otherwise we get different variable names
144 pkg_check_modules(OPTS_GTK
145 gio-2.0
146 gcr-3>=2.32
147 )
148 add_definitions("-DGCR_VERSION=\"${OPTS_GTK_gcr-3_VERSION}\"")
149 set(VALAFLAGS ${VALAFLAGS} "-D;HAVE_GTK3")
150 set(VALAFLAGS ${VALAFLAGS} "-D;HAVE_WEBKIT2")
151else ()
152 pkg_check_modules(DEPS_GTK REQUIRED
153 gtk+-2.0>=2.24.0
154 webkit-1.0>=1.8.3
155 javascriptcoregtk-1.0
156 )
157 add_definitions("-DGTK_VERSION=\"${DEPS_GTK_gtk+-2.0_VERSION}\"")
158 add_definitions("-DWEBKIT_VERSION=\"${DEPS_GTK_webkit-1.0_VERSION}\"")
159 set(PKGS ${PKGS} gtk+-2.0)
160 set(EXTRA_VAPIS ${EXTRA_VAPIS} "${CMAKE_SOURCE_DIR}/midori/webkitgtk-3.0.vapi")
161 add_definitions("-DGCR_VERSION=\"No\"")
162endif ()
163
164find_package(Vala REQUIRED)
165vala_require("0.16.0")
166set(VALAFLAGS ${VALAFLAGS}
167 --enable-deprecated
168 --debug
169 )
170
171# dh_translations detects this if there's no variable used
172set (GETTEXT_PACKAGE "midori")
173add_definitions("-DGETTEXT_PACKAGE=\"${GETTEXT_PACKAGE}\"")
174
175set(CFLAGS "-w -Wno-deprecated-declarations")
176set(LIBMIDORI "${CMAKE_PROJECT_NAME}-core")
177
178add_subdirectory (midori)
179add_subdirectory (po)
180add_subdirectory (icons)
181add_subdirectory (data)
182enable_testing()
183add_subdirectory (tests)
184add_subdirectory (extensions)
0185
=== added directory 'cmake'
=== added file 'cmake/ContainTest.cmake'
--- cmake/ContainTest.cmake 1970-01-01 00:00:00 +0000
+++ cmake/ContainTest.cmake 2013-09-01 17:11:24 +0000
@@ -0,0 +1,18 @@
1# Copyright (C) 2013 Christian Dywan <christian@twotoasts.de>
2
3include(ParseArguments)
4
5macro(contain_test test_name)
6 parse_arguments(ARGS "TEST" "" ${ARGN})
7 set(TEST_ENV "")
8 foreach(VARIABLE XDG_DATA_HOME XDG_CONFIG_HOME XDG_CACHE_HOME XDG_DATA_HOME XDG_RUNTIME_DIR TMPDIR)
9 set(CONTAINER "${CMAKE_CURRENT_BINARY_DIR}/${test_name}-folders/${VARIABLE}")
10 file(MAKE_DIRECTORY ${CONTAINER})
11 set(TEST_ENV "${TEST_ENV}${VARIABLE}=${CONTAINER};")
12 endforeach()
13 set_tests_properties(${test_name} PROPERTIES
14 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
15 TIMEOUT 42
16 ENVIRONMENT "${TEST_ENV}"
17 )
18endmacro(contain_test)
019
=== added file 'cmake/FindIntltool.cmake'
--- cmake/FindIntltool.cmake 1970-01-01 00:00:00 +0000
+++ cmake/FindIntltool.cmake 2013-09-01 17:11:24 +0000
@@ -0,0 +1,30 @@
1# FindIntltool.cmake
2#
3# Jim Nelson <jim@yorba.org>
4# Copyright 2012-2013 Yorba Foundation
5# Copyright (C) 2013 Christian Dywan
6
7find_program (INTLTOOL_MERGE_EXECUTABLE intltool-merge)
8find_program (INTLTOOL_UPDATE_EXECUTABLE intltool-update)
9
10if (INTLTOOL_MERGE_EXECUTABLE)
11 set (INTLTOOL_MERGE_FOUND TRUE)
12 macro (INTLTOOL_MERGE_DESKTOP desktop_id po_dir)
13 add_custom_target ("${desktop_id}.desktop" ALL
14 ${INTLTOOL_MERGE_EXECUTABLE} --desktop-style ${CMAKE_SOURCE_DIR}/${po_dir}
15 ${CMAKE_CURRENT_SOURCE_DIR}/${desktop_id}.desktop.in ${desktop_id}.desktop
16 )
17 install (FILES "${CMAKE_CURRENT_BINARY_DIR}/${desktop_id}.desktop"
18 DESTINATION "${CMAKE_INSTALL_PREFIX}/share/applications")
19 endmacro (INTLTOOL_MERGE_DESKTOP desktop_id po_dir)
20endif ()
21
22if (INTLTOOL_UPDATE_EXECUTABLE)
23 set (INTLTOOL_UPDATE_FOUND TRUE)
24 add_custom_target (pot
25 COMMAND ${INTLTOOL_UPDATE_EXECUTABLE} "-p" "-g" ${GETTEXT_PACKAGE}
26 WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/po"
27 )
28endif ()
29
30
031
=== added file 'cmake/FindVala.cmake'
--- cmake/FindVala.cmake 1970-01-01 00:00:00 +0000
+++ cmake/FindVala.cmake 2013-09-01 17:11:24 +0000
@@ -0,0 +1,18 @@
1# Copyright (C) 2013 Christian Dywan <christian@twotoasts.de>
2
3find_program(VALA_EXECUTABLE NAMES valac)
4if (NOT VALA_NOTFOUND)
5 execute_process(COMMAND ${VALA_EXECUTABLE} "--version" OUTPUT_VARIABLE "VALA_VERSION")
6 string(REPLACE "Vala " "" VALA_VERSION ${VALA_VERSION})
7 string(STRIP ${VALA_VERSION} VALA_VERSION)
8else ()
9 message(FATAL_ERROR "valac not found")
10endif ()
11
12macro(vala_require VALA_REQUIRED)
13 if (${VALA_VERSION} VERSION_GREATER ${VALA_REQUIRED} OR ${VALA_VERSION} VERSION_EQUAL ${VALA_REQUIRED})
14 message(STATUS "valac ${VALA_VERSION} found")
15 else ()
16 message(FATAL_ERROR "valac >= ${VALA_REQUIRED} or later required")
17 endif ()
18endmacro(vala_require)
019
=== added file 'cmake/GLibHelpers.cmake'
--- cmake/GLibHelpers.cmake 1970-01-01 00:00:00 +0000
+++ cmake/GLibHelpers.cmake 2013-09-01 17:11:24 +0000
@@ -0,0 +1,71 @@
1# Copyright (C) 2010 David Sansome <me@davidsansome.com>
2cmake_minimum_required(VERSION 2.6)
3if(POLICY CMP0011)
4 cmake_policy(SET CMP0011 NEW)
5endif(POLICY CMP0011)
6
7find_program(GLIB_MKENUMS glib-mkenums)
8find_program(GLIB_GENMARSHAL glib-genmarshal)
9
10macro(add_glib_marshal outfiles name prefix otherinclude)
11 add_custom_command(
12 OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${name}.h"
13 COMMAND ${GLIB_GENMARSHAL} --header "--prefix=${prefix}"
14 "${CMAKE_CURRENT_SOURCE_DIR}/${name}.list"
15 > "${CMAKE_CURRENT_BINARY_DIR}/${name}.h"
16 DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/${name}.list"
17 )
18 add_custom_command(
19 OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${name}.c"
20 COMMAND echo "\\#include \\\"${otherinclude}\\\"" > "${CMAKE_CURRENT_BINARY_DIR}/${name}.c"
21 COMMAND echo "\\#include \\\"glib-object.h\\\"" >> "${CMAKE_CURRENT_BINARY_DIR}/${name}.c"
22 COMMAND echo "\\#include \\\"${name}.h\\\"" >> "${CMAKE_CURRENT_BINARY_DIR}/${name}.c"
23 COMMAND ${GLIB_GENMARSHAL} --body "--prefix=${prefix}"
24 "${CMAKE_CURRENT_SOURCE_DIR}/${name}.list"
25 >> "${CMAKE_CURRENT_BINARY_DIR}/${name}.c"
26 DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/${name}.list"
27 "${CMAKE_CURRENT_BINARY_DIR}/${name}.h"
28 )
29 list(APPEND ${outfiles} "${CMAKE_CURRENT_BINARY_DIR}/${name}.c")
30endmacro(add_glib_marshal)
31
32macro(add_glib_enumtypes_t outfiles name htemplate ctemplate)
33 add_custom_command(
34 OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${name}.h"
35 COMMAND ${GLIB_MKENUMS}
36 --template "${htemplate}"
37 ${ARGN} > "${CMAKE_CURRENT_BINARY_DIR}/${name}.h"
38 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
39 DEPENDS ${ARGN} "${htemplate}"
40 )
41 add_custom_command(
42 OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${name}.c"
43 COMMAND ${GLIB_MKENUMS}
44 --template "${ctemplate}"
45 ${ARGN} > "${CMAKE_CURRENT_BINARY_DIR}/${name}.c"
46 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
47 DEPENDS ${ARGN} ${ctemplate}
48 "${CMAKE_CURRENT_BINARY_DIR}/${name}.h"
49 )
50 list(APPEND ${outfiles} "${CMAKE_CURRENT_BINARY_DIR}/${name}.c")
51endmacro(add_glib_enumtypes_t)
52
53macro(add_glib_enumtypes outfiles name includeguard)
54 set(htemplate "${CMAKE_CURRENT_BINARY_DIR}/${name}.h.template")
55 set(ctemplate "${CMAKE_CURRENT_BINARY_DIR}/${name}.c.template")
56
57 # Write the .h template
58 add_custom_command(
59 OUTPUT ${htemplate} ${ctemplate}
60 COMMAND ${CMAKE_COMMAND}
61 "-Dctemplate=${ctemplate}"
62 "-Dhtemplate=${htemplate}"
63 "-Dname=${name}"
64 "-Dincludeguard=${includeguard}"
65 "\"-Dheaders=${ARGN}\""
66 -P "${CMAKE_SOURCE_DIR}/CMake/MakeGLibEnumTemplates.cmake"
67 DEPENDS "${CMAKE_SOURCE_DIR}/CMake/MakeGLibEnumTemplates.cmake" ${headers}
68 )
69
70 add_glib_enumtypes_t(${outfiles} ${name} ${htemplate} ${ctemplate} ${ARGN})
71endmacro(add_glib_enumtypes)
072
=== added file 'cmake/ParseArguments.cmake'
--- cmake/ParseArguments.cmake 1970-01-01 00:00:00 +0000
+++ cmake/ParseArguments.cmake 2013-09-01 17:11:24 +0000
@@ -0,0 +1,36 @@
1##
2# This is a helper Macro to parse optional arguments in Macros/Functions
3# It has been taken from the public CMake wiki.
4# See http://www.cmake.org/Wiki/CMakeMacroParseArguments for documentation and
5# licensing.
6##
7macro(parse_arguments prefix arg_names option_names)
8 set(DEFAULT_ARGS)
9 foreach(arg_name ${arg_names})
10 set(${prefix}_${arg_name})
11 endforeach(arg_name)
12 foreach(option ${option_names})
13 set(${prefix}_${option} FALSE)
14 endforeach(option)
15
16 set(current_arg_name DEFAULT_ARGS)
17 set(current_arg_list)
18 foreach(arg ${ARGN})
19 set(larg_names ${arg_names})
20 list(FIND larg_names "${arg}" is_arg_name)
21 if(is_arg_name GREATER -1)
22 set(${prefix}_${current_arg_name} ${current_arg_list})
23 set(current_arg_name ${arg})
24 set(current_arg_list)
25 else(is_arg_name GREATER -1)
26 set(loption_names ${option_names})
27 list(FIND loption_names "${arg}" is_option)
28 if(is_option GREATER -1)
29 set(${prefix}_${arg} TRUE)
30 else(is_option GREATER -1)
31 set(current_arg_list ${current_arg_list} ${arg})
32 endif(is_option GREATER -1)
33 endif(is_arg_name GREATER -1)
34 endforeach(arg)
35 set(${prefix}_${current_arg_name} ${current_arg_list})
36endmacro(parse_arguments)
037
=== added file 'cmake/ValaPrecompile.cmake'
--- cmake/ValaPrecompile.cmake 1970-01-01 00:00:00 +0000
+++ cmake/ValaPrecompile.cmake 2013-09-01 17:11:24 +0000
@@ -0,0 +1,236 @@
1##
2# Copyright 2009-2010 Jakob Westhoff. All rights reserved.
3# Copyright 2012 elementary.
4#
5# Redistribution and use in source and binary forms, with or without
6# modification, are permitted provided that the following conditions are met:
7#
8# 1. Redistributions of source code must retain the above copyright notice,
9# this list of conditions and the following disclaimer.
10#
11# 2. Redistributions in binary form must reproduce the above copyright notice,
12# this list of conditions and the following disclaimer in the documentation
13# and/or other materials provided with the distribution.
14#
15# THIS SOFTWARE IS PROVIDED BY JAKOB WESTHOFF ``AS IS'' AND ANY EXPRESS OR
16# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
17# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
18# EVENT SHALL JAKOB WESTHOFF OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
19# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
20# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
21# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
22# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
23# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
24# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25#
26# The views and conclusions contained in the software and documentation are those
27# of the authors and should not be interpreted as representing official policies,
28# either expressed or implied, of Jakob Westhoff
29##
30
31include(ParseArguments)
32find_package(Vala REQUIRED)
33
34##
35# Compile vala files to their c equivalents for further processing.
36#
37# The "vala_precompile" macro takes care of calling the valac executable on the
38# given source to produce c files which can then be processed further using
39# default cmake functions.
40#
41# The first parameter provided is a variable, which will be filled with a list
42# of c files outputted by the vala compiler. This list can than be used in
43# conjuction with functions like "add_executable" or others to create the
44# neccessary compile rules with CMake.
45#
46# The initial variable is followed by a list of .vala files to be compiled.
47# Please take care to add every vala file belonging to the currently compiled
48# project or library as Vala will otherwise not be able to resolve all
49# dependencies.
50#
51# The following sections may be specified afterwards to provide certain options
52# to the vala compiler:
53#
54# PACKAGES
55# A list of vala packages/libraries to be used during the compile cycle. The
56# package names are exactly the same, as they would be passed to the valac
57# "--pkg=" option.
58#
59# OPTIONS
60# A list of optional options to be passed to the valac executable. This can be
61# used to pass "--thread" for example to enable multi-threading support.
62#
63# CUSTOM_VAPIS
64# A list of custom vapi files to be included for compilation. This can be
65# useful to include freshly created vala libraries without having to install
66# them in the system.
67#
68# GENERATE_VAPI
69# Pass all the needed flags to the compiler to create an internal vapi for
70# the compiled library. The provided name will be used for this and a
71# <provided_name>.vapi file will be created.
72#
73# GENERATE_HEADER
74# Let the compiler generate a header file for the compiled code. There will
75# be a header file as well as an internal header file being generated called
76# <provided_name>.h and <provided_name>_internal.h
77#
78# GENERATE_GIR
79# Have the compiler generate a GObject-Introspection repository file with
80# name: <provided_name>.gir. This can be later used to create a binary typelib
81# using the GI compiler.
82#
83# GENERATE_SYMBOLS
84# Output a <provided_name>.symbols file containing all the exported symbols.
85#
86# The following call is a simple example to the vala_precompile macro showing
87# an example to every of the optional sections:
88#
89# vala_precompile(VALA_C mytargetname
90# source1.vala
91# source2.vala
92# source3.vala
93# PACKAGES
94# gtk+-2.0
95# gio-1.0
96# posix
97# DIRECTORY
98# gen
99# OPTIONS
100# --thread
101# CUSTOM_VAPIS
102# some_vapi.vapi
103# GENERATE_VAPI
104# myvapi
105# GENERATE_HEADER
106# myheader
107# GENERATE_GIR
108# mygir
109# GENERATE_SYMBOLS
110# mysymbols
111# )
112#
113# Most important is the variable VALA_C which will contain all the generated c
114# file names after the call.
115##
116
117macro(vala_precompile output target_name)
118 parse_arguments(ARGS "TARGET;PACKAGES;OPTIONS;DIRECTORY;GENERATE_GIR;GENERATE_SYMBOLS;GENERATE_HEADER;GENERATE_VAPI;CUSTOM_VAPIS" "" ${ARGN})
119
120 if(ARGS_DIRECTORY)
121 set(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${ARGS_DIRECTORY})
122 else(ARGS_DIRECTORY)
123 set(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
124 endif(ARGS_DIRECTORY)
125 include_directories(${DIRECTORY})
126 set(vala_pkg_opts "")
127 foreach(pkg ${ARGS_PACKAGES})
128 list(APPEND vala_pkg_opts "--pkg=${pkg}")
129 endforeach(pkg ${ARGS_PACKAGES})
130 set(in_files "")
131 set(out_files "")
132 set(out_files_display "")
133 set(${output} "")
134
135 foreach(src ${ARGS_DEFAULT_ARGS})
136 string(REGEX MATCH "^/" IS_MATCHED ${src})
137 if(${IS_MATCHED} MATCHES "/")
138 set(src_file_path ${src})
139 else()
140 set(src_file_path ${CMAKE_CURRENT_SOURCE_DIR}/${src})
141 endif()
142 list(APPEND in_files ${src_file_path})
143 string(REPLACE ".vala" ".c" src ${src})
144 string(REPLACE ".gs" ".c" src ${src})
145 if(${IS_MATCHED} MATCHES "/")
146 get_filename_component(VALA_FILE_NAME ${src} NAME)
147 set(out_file "${CMAKE_CURRENT_BINARY_DIR}/${VALA_FILE_NAME}")
148 list(APPEND out_files "${CMAKE_CURRENT_BINARY_DIR}/${VALA_FILE_NAME}")
149 else()
150 set(out_file "${DIRECTORY}/${src}")
151 list(APPEND out_files "${DIRECTORY}/${src}")
152 endif()
153 list(APPEND ${output} ${out_file})
154 list(APPEND out_files_display "${src}")
155 endforeach(src ${ARGS_DEFAULT_ARGS})
156
157 set(custom_vapi_arguments "")
158 if(ARGS_CUSTOM_VAPIS)
159 foreach(vapi ${ARGS_CUSTOM_VAPIS})
160 if(${vapi} MATCHES ${CMAKE_SOURCE_DIR} OR ${vapi} MATCHES ${CMAKE_BINARY_DIR})
161 list(APPEND custom_vapi_arguments ${vapi})
162 else (${vapi} MATCHES ${CMAKE_SOURCE_DIR} OR ${vapi} MATCHES ${CMAKE_BINARY_DIR})
163 list(APPEND custom_vapi_arguments ${CMAKE_CURRENT_SOURCE_DIR}/${vapi})
164 endif(${vapi} MATCHES ${CMAKE_SOURCE_DIR} OR ${vapi} MATCHES ${CMAKE_BINARY_DIR})
165 endforeach(vapi ${ARGS_CUSTOM_VAPIS})
166 endif(ARGS_CUSTOM_VAPIS)
167
168 set(vapi_arguments "")
169 if(ARGS_GENERATE_VAPI)
170 list(APPEND out_files "${DIRECTORY}/${ARGS_GENERATE_VAPI}.vapi")
171 list(APPEND out_files_display "${ARGS_GENERATE_VAPI}.vapi")
172 set(vapi_arguments "--library=${ARGS_GENERATE_VAPI}" "--vapi=${ARGS_GENERATE_VAPI}.vapi")
173
174 # Header and internal header is needed to generate internal vapi
175 if (NOT ARGS_GENERATE_HEADER)
176 set(ARGS_GENERATE_HEADER ${ARGS_GENERATE_VAPI})
177 endif(NOT ARGS_GENERATE_HEADER)
178 endif(ARGS_GENERATE_VAPI)
179
180 set(header_arguments "")
181 if(ARGS_GENERATE_HEADER)
182 list(APPEND out_files "${DIRECTORY}/${ARGS_GENERATE_HEADER}.h")
183 list(APPEND out_files_display "${ARGS_GENERATE_HEADER}.h")
184 list(APPEND header_arguments "--header=${ARGS_GENERATE_HEADER}.h")
185 endif(ARGS_GENERATE_HEADER)
186
187 set(gir_arguments "")
188 if(ARGS_GENERATE_GIR)
189 list(APPEND out_files "${DIRECTORY}/${ARGS_GENERATE_GIR}.gir")
190 list(APPEND out_files_display "${ARGS_GENERATE_GIR}.gir")
191 set(gir_arguments "--gir=${ARGS_GENERATE_GIR}.gir")
192 endif(ARGS_GENERATE_GIR)
193
194 set(symbols_arguments "")
195 if(ARGS_GENERATE_SYMBOLS)
196 list(APPEND out_files "${DIRECTORY}/${ARGS_GENERATE_SYMBOLS}.symbols")
197 list(APPEND out_files_display "${ARGS_GENERATE_SYMBOLS}.symbols")
198 set(symbols_arguments "--symbols=${ARGS_GENERATE_SYMBOLS}.symbols")
199 endif(ARGS_GENERATE_SYMBOLS)
200
201 # Workaround for a bug that would make valac run twice. This file is written
202 # after the vala compiler generates C source code.
203 set(OUTPUT_STAMP ${CMAKE_CURRENT_BINARY_DIR}/${target_name}_valac.stamp)
204
205 add_custom_command(
206 OUTPUT
207 ${OUTPUT_STAMP}
208 COMMAND
209 ${VALA_EXECUTABLE}
210 ARGS
211 "-C"
212 ${header_arguments}
213 ${vapi_arguments}
214 ${gir_arguments}
215 ${symbols_arguments}
216 "-b" ${CMAKE_CURRENT_SOURCE_DIR}
217 "-d" ${DIRECTORY}
218 ${vala_pkg_opts}
219 ${ARGS_OPTIONS}
220 ${in_files}
221 ${custom_vapi_arguments}
222 COMMAND
223 touch
224 ARGS
225 ${OUTPUT_STAMP}
226 DEPENDS
227 ${in_files}
228 ${ARGS_CUSTOM_VAPIS}
229 COMMENT
230 "Generating ${out_files_display}"
231 )
232
233 # This command will be run twice for some reason (pass a non-empty string to COMMENT
234 # in order to see it). Since valac is not executed from here, this won't be a problem.
235 add_custom_command(OUTPUT ${out_files} DEPENDS ${OUTPUT_STAMP} COMMENT "")
236endmacro(vala_precompile)
0237
=== added file 'data/CMakeLists.txt'
--- data/CMakeLists.txt 1970-01-01 00:00:00 +0000
+++ data/CMakeLists.txt 2013-09-01 17:11:24 +0000
@@ -0,0 +1,34 @@
1# Copyright (C) 2013 Christian Dywan <christian@twotoasts.de>
2
3include(FindIntltool)
4if (NOT INTLTOOL_MERGE_FOUND)
5 message(FATAL_ERROR "intltool-merge not found")
6elseif (NOT INTLTOOL_UPDATE_FOUND)
7 message(FATAL_ERROR "intltool-update not found")
8endif ()
9
10file(GLOB_RECURSE DATA_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *)
11list(REMOVE_ITEM DATA_FILES "CMakeLists.txt")
12
13foreach(FILE ${DATA_FILES})
14 string(FIND ${FILE} "faq." FAQ_FILE)
15 string(FIND ${FILE} "midori." MIDORI_FILE)
16 string(FIND ${FILE} ".desktop" DESKTOP_FILE)
17 if (FAQ_FILE GREATER -1)
18 elseif (DESKTOP_FILE GREATER -1)
19 string(SUBSTRING ${FILE} 0 ${DESKTOP_FILE} DESKTOP_ID)
20 INTLTOOL_MERGE_DESKTOP (${DESKTOP_ID} po)
21 elseif(MIDORI_FILE GREATER -1)
22 else()
23 string(FIND ${FILE} "/" IS_DIR)
24 if (IS_DIR GREATER -1)
25 string(REPLACE "/" ";" DIR_LIST ${FILE})
26 LIST(GET DIR_LIST 0 S_DIR)
27 LIST(GET DIR_LIST 1 S_FILE)
28 install(FILES ${S_DIR}/${S_FILE} DESTINATION ${CMAKE_INSTALL_DATADIR}/midori/res/${S_DIR})
29 else ()
30 install(FILES ${FILE} DESTINATION ${CMAKE_INSTALL_DATADIR}/midori/res/)
31 endif()
32 endif()
33
34endforeach()
035
=== added file 'extensions/CMakeLists.txt'
--- extensions/CMakeLists.txt 1970-01-01 00:00:00 +0000
+++ extensions/CMakeLists.txt 2013-09-01 17:11:24 +0000
@@ -0,0 +1,92 @@
1# Copyright (C) 2013 Christian Dywan <christian@twotoasts.de>
2
3set(EXTENSIONDIR "${CMAKE_INSTALL_FULL_LIBDIR}/${CMAKE_PROJECT_NAME}")
4include_directories(
5 "${CMAKE_SOURCE_DIR}"
6 "${CMAKE_SOURCE_DIR}/midori"
7 "${CMAKE_SOURCE_DIR}/katze"
8 ${DEPS_INCLUDE_DIRS}
9 ${OPTS_INCLUDE_DIRS}
10 ${DEPS_GTK_INCLUDE_DIRS}
11 ${OPTS_GTK_INCLUDE_DIRS}
12 ${CMAKE_BINARY_DIR}
13 "${CMAKE_BINARY_DIR}/midori"
14 )
15file(GLOB EXTENSIONS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *)
16if (HALF_BRO_INCOM_WEBKIT2)
17 list(REMOVE_ITEM EXTENSIONS
18 "adblock.c"
19 "cookie-permissions"
20 "addons.c"
21 "formhistory"
22 "external-download-manager.vala"
23 "nojs"
24 "nsplugin-manager.vala"
25 )
26endif ()
27
28foreach(UNIT_SRC ${EXTENSIONS})
29 string(FIND ${UNIT_SRC} ".c" UNIT_EXTENSION)
30 if (UNIT_EXTENSION GREATER -1)
31 string(REPLACE ".c" "" UNIT ${UNIT_SRC})
32 add_library(${UNIT} MODULE ${UNIT_SRC})
33 target_link_libraries(${UNIT}
34 ${LIBMIDORI}
35 )
36 set_target_properties(${UNIT} PROPERTIES
37 COMPILE_FLAGS ${CFLAGS}
38 )
39 install(TARGETS ${UNIT}
40 LIBRARY DESTINATION ${EXTENSIONDIR}
41 )
42 endif ()
43endforeach ()
44
45foreach(UNIT_SRC ${EXTENSIONS})
46 string(FIND ${UNIT_SRC} "." UNIT_EXTENSION)
47 if (UNIT_EXTENSION EQUAL -1)
48 file(GLOB UNIT_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "${UNIT_SRC}/*.c")
49 if (UNIT_FILES)
50 add_library(${UNIT_SRC} MODULE ${UNIT_FILES})
51 target_link_libraries(${UNIT_SRC}
52 ${LIBMIDORI}
53 )
54 set_target_properties(${UNIT_SRC} PROPERTIES
55 COMPILE_FLAGS ${CFLAGS}
56 )
57 install(TARGETS ${UNIT_SRC}
58 LIBRARY DESTINATION ${EXTENSIONDIR}
59 )
60 endif ()
61 endif ()
62endforeach ()
63
64foreach(UNIT_SRC ${EXTENSIONS})
65 string(FIND ${UNIT_SRC} ".vala" UNIT_EXTENSION)
66 if (UNIT_EXTENSION GREATER -1)
67 string(REPLACE ".vala" "" UNIT ${UNIT_SRC})
68 include(ValaPrecompile)
69 vala_precompile(UNIT_SRC_C ${UNIT}
70 ${UNIT_SRC}
71 PACKAGES
72 ${PKGS}
73 OPTIONS
74 ${VALAFLAGS}
75 CUSTOM_VAPIS
76 ${EXTRA_VAPIS}
77 "${CMAKE_SOURCE_DIR}/midori/midori.vapi"
78 "${CMAKE_SOURCE_DIR}/katze/katze.vapi"
79 "${CMAKE_BINARY_DIR}/midori/${LIBMIDORI}.vapi"
80 )
81 add_library(${UNIT} MODULE ${UNIT_SRC_C})
82 target_link_libraries(${UNIT}
83 ${LIBMIDORI}
84 )
85 set_target_properties(${UNIT} PROPERTIES
86 COMPILE_FLAGS ${CFLAGS}
87 )
88 install(TARGETS ${UNIT}
89 LIBRARY DESTINATION ${EXTENSIONDIR}
90 )
91 endif ()
92endforeach ()
093
=== added file 'icons/CMakeLists.txt'
--- icons/CMakeLists.txt 1970-01-01 00:00:00 +0000
+++ icons/CMakeLists.txt 2013-09-01 17:11:24 +0000
@@ -0,0 +1,12 @@
1# Copyright (C) 2013 Christian Dywan <christian@twotoasts.de>
2
3macro(install_icon name cat size)
4 file(GLOB FILENAME RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "${size}/${name}.*")
5 install(FILES ${FILENAME} DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/${size}/${cat})
6endmacro()
7
8foreach(SIZE "16x16;22x22;scalable")
9 install_icon(midori apps ${SIZE})
10 install_icon(extension categories ${SIZE})
11 install_icon(internet-news-reader status ${SIZE})
12endforeach()
013
=== added file 'midori/CMakeLists.txt'
--- midori/CMakeLists.txt 1970-01-01 00:00:00 +0000
+++ midori/CMakeLists.txt 2013-09-01 17:11:24 +0000
@@ -0,0 +1,64 @@
1# Copyright (C) 2013 Christian Dywan <christian@twotoasts.de>
2
3set(LIBMIDORI_VERSION 0.5.5)
4set(LIBMIDORI_SOVERSION 0)
5
6file(GLOB MIDORI_VALA_SOURCE ../katze/*.vala *.vala ../panels/*.vala)
7file(GLOB LIBMIDORI_SOURCE ../katze/*.c ../panels/*.c ../toolbars/*.c midori-*.vala midori-*.c sokoke.c)
8include(GLibHelpers)
9add_glib_marshal(LIBMIDORI_SOURCE marshal ${CMAKE_PROJECT_NAME}_cclosure_marshal "midori.h")
10set(MIDORI_SOURCE
11 main.c
12 )
13
14include(ValaPrecompile)
15vala_precompile(LIBMIDORI_SOURCE_C ${CMAKE_PROJECT_NAME}
16 ${MIDORI_VALA_SOURCE}
17PACKAGES
18 ${PKGS}
19OPTIONS
20 ${VALAFLAGS}
21CUSTOM_VAPIS
22 ${EXTRA_VAPIS}
23GENERATE_VAPI
24 "${CMAKE_PROJECT_NAME}-core"
25GENERATE_HEADER
26 "${CMAKE_PROJECT_NAME}-core"
27)
28
29add_library(${LIBMIDORI} SHARED ${LIBMIDORI_SOURCE_C} ${LIBMIDORI_SOURCE})
30include_directories(
31 ${CMAKE_SOURCE_DIR}
32 ${CMAKE_CURRENT_SOURCE_DIR}
33 "${CMAKE_SOURCE_DIR}/katze"
34 "${CMAKE_SOURCE_DIR}/toolbars"
35 ${CMAKE_BINARY_DIR}
36 ${DEPS_INCLUDE_DIRS}
37 ${OPTS_INCLUDE_DIRS}
38 ${DEPS_GTK_INCLUDE_DIRS}
39 ${OPTS_GTK_INCLUDE_DIRS}
40 )
41target_link_libraries(${LIBMIDORI}
42 ${DEPS_LIBRARIES}
43 ${OPTS_LIBRARIES}
44 ${DEPS_GTK_LIBRARIES}
45 ${OPTS_GTK_LIBRARIES}
46 )
47set_target_properties(${LIBMIDORI} PROPERTIES
48 COMPILE_FLAGS ${CFLAGS}
49 SOVERSION 1
50 VERSION 0.0.0
51 )
52install(TARGETS ${LIBMIDORI}
53 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
54 )
55
56add_executable(${CMAKE_PROJECT_NAME} main.c)
57target_link_libraries(${CMAKE_PROJECT_NAME}
58 ${LIBMIDORI})
59set_target_properties(${CMAKE_PROJECT_NAME} PROPERTIES
60 COMPILE_FLAGS ${CFLAGS}
61 )
62install(TARGETS ${CMAKE_PROJECT_NAME}
63 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
64 )
065
=== added file 'po/CMakeLists.txt'
--- po/CMakeLists.txt 1970-01-01 00:00:00 +0000
+++ po/CMakeLists.txt 2013-09-01 17:11:24 +0000
@@ -0,0 +1,18 @@
1# Copyright (C) 2013 Christian Dywan <christian@twotoasts.de>
2
3include(FindGettext)
4if (GETTEXT_FOUND)
5 add_definitions("-DENABLE_NLS")
6 set(LANGUAGES $ENV{LINGUAS})
7 if (NOT LANGUAGES)
8 file(GLOB POTFILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.po")
9 string(REPLACE ".po" " " LANGUAGES ${POTFILES})
10 endif ()
11 message(STATUS "gettext found: ${LANGUAGES}")
12 string(REPLACE " " ";" LANGUAGES ${LANGUAGES})
13 foreach(LANG ${LANGUAGES})
14 GETTEXT_PROCESS_PO_FILES(${LANG} ALL PO_FILES "${LANG}.po")
15 endforeach ()
16else ()
17 message(STATUS "gettext not found")
18endif ()
019
=== modified file 'po/POTFILES.in'
--- po/POTFILES.in 2013-08-21 23:24:00 +0000
+++ po/POTFILES.in 2013-09-01 17:11:24 +0000
@@ -67,8 +67,6 @@
67katze/midori-hsts.vala67katze/midori-hsts.vala
68katze/katze-separatoraction.vala68katze/katze-separatoraction.vala
69katze/gtk3-compat.c69katze/gtk3-compat.c
70katze/katze-http-cookies-sqlite.c
71katze/katze-http-cookies.c
72midori/midori-panedaction.vala70midori/midori-panedaction.vala
73midori/midori-privatedata.c71midori/midori-privatedata.c
74midori/midori-dialog.vala72midori/midori-dialog.vala
7573
=== added file 'tests/CMakeLists.txt'
--- tests/CMakeLists.txt 1970-01-01 00:00:00 +0000
+++ tests/CMakeLists.txt 2013-09-01 17:11:24 +0000
@@ -0,0 +1,65 @@
1# Copyright (C) 2013 Christian Dywan <christian@twotoasts.de>
2
3include(ContainTest)
4add_custom_target(check COMMAND "env" "CTEST_OUTPUT_ON_FAILURE=1" "${CMAKE_CTEST_COMMAND}")
5
6include_directories(
7 "${CMAKE_SOURCE_DIR}"
8 "${CMAKE_SOURCE_DIR}/midori"
9 ${DEPS_INCLUDE_DIRS}
10 ${OPTS_INCLUDE_DIRS}
11 ${DEPS_GTK_INCLUDE_DIRS}
12 ${OPTS_GTK_INCLUDE_DIRS}
13 ${CMAKE_BINARY_DIR}
14 "${CMAKE_BINARY_DIR}/midori"
15 )
16file(GLOB TESTS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.c)
17foreach(UNIT_SRC ${TESTS})
18 string(REPLACE ".c" "" UNIT ${UNIT_SRC})
19 add_executable(${UNIT} ${UNIT_SRC})
20 add_test(NAME ${UNIT} COMMAND ${UNIT})
21 contain_test(${UNIT})
22 target_link_libraries(${UNIT}
23 ${LIBMIDORI}
24 )
25 set_target_properties(${UNIT} PROPERTIES
26 COMPILE_FLAGS ${CFLAGS}
27 )
28endforeach ()
29
30file(GLOB TESTS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.vala)
31foreach(UNIT_SRC ${TESTS})
32 string(REPLACE ".vala" "" UNIT ${UNIT_SRC})
33 include(ValaPrecompile)
34 vala_precompile(UNIT_SRC_C ${UNIT}
35 ${UNIT_SRC}
36 PACKAGES
37 ${PKGS}
38 OPTIONS
39 ${VALAFLAGS}
40 CUSTOM_VAPIS
41 ${EXTRA_VAPIS}
42 "${CMAKE_SOURCE_DIR}/midori/midori.vapi"
43 "${CMAKE_SOURCE_DIR}/katze/katze.vapi"
44 "${CMAKE_BINARY_DIR}/midori/${LIBMIDORI}.vapi"
45 )
46 add_executable(${UNIT} ${UNIT_SRC_C})
47 add_test(NAME ${UNIT} COMMAND ${UNIT})
48 contain_test(${UNIT})
49 target_link_libraries(${UNIT}
50 ${LIBMIDORI}
51 )
52 set_target_properties(${UNIT} PROPERTIES
53 COMPILE_FLAGS ${CFLAGS}
54 )
55endforeach ()
56
57file(GLOB TESTS *.sh)
58foreach(UNIT_SRC ${TESTS})
59 string(REPLACE ".sh" "" UNIT ${UNIT_SRC})
60 add_test(NAME ${UNIT} COMMAND ${UNIT_SRC})
61 set_tests_properties(${UNIT} PROPERTIES
62 ENVIRONMENT "SRCDIR=${CMAKE_SOURCE_DIR}"
63 ENVIRONMENT "BLDDIR=${CMAKE_BINARY_DIR}"
64 )
65endforeach ()

Subscribers

People subscribed via source and target branches

to all changes: