Merge lp:~elementary-pantheon/pantheon-greeter/update-cmake-modules into lp:~elementary-pantheon/pantheon-greeter/trunk

Proposed by Sergey "Shnatsel" Davidoff
Status: Work in progress
Proposed branch: lp:~elementary-pantheon/pantheon-greeter/update-cmake-modules
Merge into: lp:~elementary-pantheon/pantheon-greeter/trunk
Diff against target: 636 lines (+203/-311)
6 files modified
CMakeLists.txt (+1/-1)
cmake/FindGirCompiler.cmake (+56/-0)
cmake/GObjectIntrospectionMacros.cmake (+34/-0)
cmake/Makefile (+0/-286)
cmake/Translations.cmake (+37/-12)
cmake/ValaPrecompile.cmake (+75/-12)
To merge this branch: bzr merge lp:~elementary-pantheon/pantheon-greeter/update-cmake-modules
Reviewer Review Type Date Requested Status
Sergey "Shnatsel" Davidoff (community) Needs Fixing
Review via email: mp+228366@code.launchpad.net

This proposal supersedes a proposal from 2014-07-25.

Description of the change

Drop the included autogenerated makefile and update CMake modules to latest version from https://code.launchpad.net/~elementary-apps/+junk/cmake-modules

Build now fails with the following error log:

...
Scanning dependencies of target pantheon-greeter
make[3]: Leaving directory `/home/virtual/Code/update-cmake-modules/obj-x86_64-linux-gnu'
make -f CMakeFiles/pantheon-greeter.dir/build.make CMakeFiles/pantheon-greeter.dir/build
make[3]: Entering directory `/home/virtual/Code/update-cmake-modules/obj-x86_64-linux-gnu'
/usr/bin/cmake -E cmake_progress_report /home/virtual/Code/update-cmake-modules/obj-x86_64-linux-gnu/CMakeFiles 3
[ 11%] Building C object CMakeFiles/pantheon-greeter.dir/Utilities.c.o
/usr/bin/x86_64-linux-gnu-gcc -DGETTEXT_PACKAGE=\"pantheon-greeter\" -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -I/home/virtual/Code/update-cmake-modules/obj-x86_64-linux-gnu -w -pthread -I/usr/include/granite -I/usr/include/cairo -I/usr/include/gee-0.8 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/gtk-3.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/libxml2 -I/usr/include/clutter-gtk-1.0 -I/usr/include/clutter-1.0 -I/usr/include/cogl -I/usr/include/json-glib-1.0 -I/usr/include/libdrm -I/usr/include/libindicator3-0.4 -I/usr/include/lightdm-gobject-1 -o CMakeFiles/pantheon-greeter.dir/Utilities.c.o -c /home/virtual/Code/update-cmake-modules/obj-x86_64-linux-gnu/Utilities.c
x86_64-linux-gnu-gcc: error: /home/virtual/Code/update-cmake-modules/obj-x86_64-linux-gnu/Utilities.c: No such file or directory
x86_64-linux-gnu-gcc: fatal error: no input files
compilation terminated.
make[3]: *** [CMakeFiles/pantheon-greeter.dir/Utilities.c.o] Error 4
make[3]: Leaving directory `/home/virtual/Code/update-cmake-modules/obj-x86_64-linux-gnu'
make[2]: *** [CMakeFiles/pantheon-greeter.dir/all] Error 2
make[2]: Leaving directory `/home/virtual/Code/update-cmake-modules/obj-x86_64-linux-gnu'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/virtual/Code/update-cmake-modules/obj-x86_64-linux-gnu'
dh_auto_build: make -j1 returned exit code 2
make: *** [build] Error 2

To post a comment you must log in.
Revision history for this message
Sergey "Shnatsel" Davidoff (shnatsel) wrote : Posted in a previous version of this proposal

tom95 [11:01 PM] shnatsel: yeah, vala_precompile was updated, the first argument is now the targetname. So it assumes PopOver.vala is the target and not a source file that it has to compile

shnatsel [11:02 PM] How do I fix that?

tom95 [11:02 PM] shnatsel: you insert pantheon-greeter right after VALA_C

review: Needs Fixing
Revision history for this message
Sergey "Shnatsel" Davidoff (shnatsel) wrote :

tom95 [12:02 AM] for some reason valac decides to not output a .c file for the first vala file it receives, I have no clue why

review: Needs Fixing

Unmerged revisions

272. By Sergey "Shnatsel" Davidoff

update vala_precompile invocation in CMakeLists.txt, this should fix build

271. By Sergey "Shnatsel" Davidoff

Update CMake modules, drop autogenerated makefile

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'CMakeLists.txt'
--- CMakeLists.txt 2013-10-08 18:27:22 +0000
+++ CMakeLists.txt 2014-07-25 19:26:37 +0000
@@ -39,7 +39,7 @@
39file(GLOB_RECURSE sources src/*.vala)39file(GLOB_RECURSE sources src/*.vala)
4040
41include (ValaPrecompile)41include (ValaPrecompile)
42vala_precompile (VALA_C42vala_precompile (VALA_C pantheon-greeter
43 ${sources}43 ${sources}
44 ${CMAKE_BINARY_DIR}/src/config.vala44 ${CMAKE_BINARY_DIR}/src/config.vala
45PACKAGES45PACKAGES
4646
=== added file 'cmake/FindGirCompiler.cmake'
--- cmake/FindGirCompiler.cmake 1970-01-01 00:00:00 +0000
+++ cmake/FindGirCompiler.cmake 2014-07-25 19:26:37 +0000
@@ -0,0 +1,56 @@
1##
2# Copyright 2009-2010 Jakob Westhoff. All rights reserved.
3#
4# Redistribution and use in source and binary forms, with or without
5# modification, are permitted provided that the following conditions are met:
6#
7# 1. Redistributions of source code must retain the above copyright notice,
8# this list of conditions and the following disclaimer.
9#
10# 2. Redistributions in binary form must reproduce the above copyright notice,
11# this list of conditions and the following disclaimer in the documentation
12# and/or other materials provided with the distribution.
13#
14# THIS SOFTWARE IS PROVIDED BY JAKOB WESTHOFF ``AS IS'' AND ANY EXPRESS OR
15# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
16# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
17# EVENT SHALL JAKOB WESTHOFF OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
18# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
19# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
21# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
22# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
23# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24#
25# The views and conclusions contained in the software and documentation are those
26# of the authors and should not be interpreted as representing official policies,
27# either expressed or implied, of Jakob Westhoff
28##
29
30##
31# Find module for the Gir compiler (g-ir-compiler)
32#
33# This module determines wheter a Gir compiler is installed on the current
34# system and where its executable is.
35#
36# Call the module using "find_package(GirCompiler) from within your CMakeLists.txt.
37#
38# The following variables will be set after an invocation:
39#
40# G_IR_COMPILER_FOUND Whether the g-ir-compiler compiler has been found or not
41# G_IR_COMPILER_EXECUTABLE Full path to the g-ir-compiler executable if it has been found
42##
43
44
45# Search for the g-ir-compiler executable in the usual system paths.
46find_program (G_IR_COMPILER_EXECUTABLE
47 NAMES g-ir-compiler)
48
49# Handle the QUIETLY and REQUIRED arguments, which may be given to the find call.
50# Furthermore set G_IR_COMPILER_FOUND to TRUE if the g-ir-compiler has been found (aka.
51# G_IR_COMPILER_EXECUTABLE is set)
52
53include (FindPackageHandleStandardArgs)
54find_package_handle_standard_args (GirCompiler DEFAULT_MSG G_IR_COMPILER_EXECUTABLE)
55
56mark_as_advanced (G_IR_COMPILER_EXECUTABLE)
057
=== added file 'cmake/GObjectIntrospectionMacros.cmake'
--- cmake/GObjectIntrospectionMacros.cmake 1970-01-01 00:00:00 +0000
+++ cmake/GObjectIntrospectionMacros.cmake 2014-07-25 19:26:37 +0000
@@ -0,0 +1,34 @@
1macro(add_target_gir TARGET_NAME GIR_NAME HEADER CFLAGS GRANITE_VERSION)
2 set(PACKAGES "")
3 foreach(PKG ${ARGN})
4 set(PACKAGES ${PACKAGES} --include=${PKG})
5 endforeach()
6 install(CODE "set(ENV{LD_LIBRARY_PATH} \"${CMAKE_CURRENT_BINARY_DIR}:\$ENV{LD_LIBRARY_PATH}\")
7 execute_process(COMMAND g-ir-scanner ${CFLAGS} -n ${GIR_NAME}
8 --quiet
9 --library ${TARGET_NAME} ${PACKAGES}
10 -o ${CMAKE_CURRENT_BINARY_DIR}/${GIR_NAME}-${GRANITE_VERSION}.gir
11 -L${CMAKE_CURRENT_BINARY_DIR}
12 --nsversion=${GRANITE_VERSION} ${HEADER})")
13 install(CODE "execute_process(COMMAND g-ir-compiler ${CMAKE_CURRENT_BINARY_DIR}/${GIR_NAME}-${GRANITE_VERSION}.gir -o ${CMAKE_CURRENT_BINARY_DIR}/${GIR_NAME}-${GRANITE_VERSION}.typelib)")
14 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${GIR_NAME}-${GRANITE_VERSION}.gir DESTINATION share/gir-1.0/)
15 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${GIR_NAME}-${GRANITE_VERSION}.typelib DESTINATION lib/girepository-1.0/)
16endmacro()
17
18macro(add_target_gir_with_executable TARGET_NAME EXE_NAME GIR_NAME HEADER EXE_HEADER CFLAGS GRANITE_VERSION)
19 set(PACKAGES "")
20 foreach(PKG ${ARGN})
21 set(PACKAGES ${PACKAGES} --include=${PKG})
22 endforeach()
23 install(CODE "set(ENV{LD_LIBRARY_PATH} \"${CMAKE_CURRENT_BINARY_DIR}:\$ENV{LD_LIBRARY_PATH}\")
24 execute_process(COMMAND g-ir-scanner ${CFLAGS} -n ${GIR_NAME}
25 --quiet
26 --library ${TARGET_NAME} --program ${EXE_NAME} ${PACKAGES}
27 -o ${CMAKE_CURRENT_BINARY_DIR}/${GIR_NAME}-${GRANITE_VERSION}.gir
28 -L${CMAKE_CURRENT_BINARY_DIR}
29 -I${CMAKE_CURRENT_BINARY_DIR}
30 --nsversion=${GRANITE_VERSION} ${HEADER} ${EXE_HEADER})")
31 install(CODE "execute_process(COMMAND g-ir-compiler ${CMAKE_CURRENT_BINARY_DIR}/${GIR_NAME}-${GRANITE_VERSION}.gir -o ${CMAKE_CURRENT_BINARY_DIR}/${GIR_NAME}-${GRANITE_VERSION}.typelib)")
32 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${GIR_NAME}-${GRANITE_VERSION}.gir DESTINATION share/gir-1.0/)
33 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${GIR_NAME}-${GRANITE_VERSION}.typelib DESTINATION lib/girepository-1.0/)
34endmacro()
035
=== removed file 'cmake/Makefile'
--- cmake/Makefile 2012-05-01 18:01:01 +0000
+++ cmake/Makefile 1970-01-01 00:00:00 +0000
@@ -1,286 +0,0 @@
1# CMAKE generated file: DO NOT EDIT!
2# Generated by "Unix Makefiles" Generator, CMake Version 2.8
3
4# Default target executed when no arguments are given to make.
5default_target: all
6.PHONY : default_target
7
8#=============================================================================
9# Special targets provided by cmake.
10
11# Disable implicit rules so canoncical targets will work.
12.SUFFIXES:
13
14# Remove some rules from gmake that .SUFFIXES does not remove.
15SUFFIXES =
16
17.SUFFIXES: .hpux_make_needs_suffix_list
18
19# Suppress display of executed commands.
20$(VERBOSE).SILENT:
21
22# A target that is always out of date.
23cmake_force:
24.PHONY : cmake_force
25
26#=============================================================================
27# Set environment variables for the build.
28
29# The shell in which to execute make rules.
30SHELL = /bin/sh
31
32# The CMake executable.
33CMAKE_COMMAND = /usr/bin/cmake
34
35# The command to remove a file.
36RM = /usr/bin/cmake -E remove -f
37
38# The top-level source directory on which CMake was run.
39CMAKE_SOURCE_DIR = /home/mefrio/Scrivania/cmake
40
41# The top-level build directory on which CMake was run.
42CMAKE_BINARY_DIR = /home/mefrio/Scrivania/cmake/cmake
43
44#=============================================================================
45# Targets provided globally by CMake.
46
47# Special rule for the target edit_cache
48edit_cache:
49 @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running interactive CMake command-line interface..."
50 /usr/bin/cmake -i .
51.PHONY : edit_cache
52
53# Special rule for the target edit_cache
54edit_cache/fast: edit_cache
55.PHONY : edit_cache/fast
56
57# Special rule for the target install
58install: preinstall
59 @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
60 /usr/bin/cmake -P cmake_install.cmake
61.PHONY : install
62
63# Special rule for the target install
64install/fast: preinstall/fast
65 @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
66 /usr/bin/cmake -P cmake_install.cmake
67.PHONY : install/fast
68
69# Special rule for the target install/local
70install/local: preinstall
71 @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
72 /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
73.PHONY : install/local
74
75# Special rule for the target install/local
76install/local/fast: install/local
77.PHONY : install/local/fast
78
79# Special rule for the target install/strip
80install/strip: preinstall
81 @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
82 /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
83.PHONY : install/strip
84
85# Special rule for the target install/strip
86install/strip/fast: install/strip
87.PHONY : install/strip/fast
88
89# Special rule for the target list_install_components
90list_install_components:
91 @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\""
92.PHONY : list_install_components
93
94# Special rule for the target list_install_components
95list_install_components/fast: list_install_components
96.PHONY : list_install_components/fast
97
98# Special rule for the target rebuild_cache
99rebuild_cache:
100 @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
101 /usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
102.PHONY : rebuild_cache
103
104# Special rule for the target rebuild_cache
105rebuild_cache/fast: rebuild_cache
106.PHONY : rebuild_cache/fast
107
108# The main all target
109all: cmake_check_build_system
110 $(CMAKE_COMMAND) -E cmake_progress_start /home/mefrio/Scrivania/cmake/cmake/CMakeFiles /home/mefrio/Scrivania/cmake/cmake/CMakeFiles/progress.marks
111 $(MAKE) -f CMakeFiles/Makefile2 all
112 $(CMAKE_COMMAND) -E cmake_progress_start /home/mefrio/Scrivania/cmake/cmake/CMakeFiles 0
113.PHONY : all
114
115# The main clean target
116clean:
117 $(MAKE) -f CMakeFiles/Makefile2 clean
118.PHONY : clean
119
120# The main clean target
121clean/fast: clean
122.PHONY : clean/fast
123
124# Prepare targets for installation.
125preinstall: all
126 $(MAKE) -f CMakeFiles/Makefile2 preinstall
127.PHONY : preinstall
128
129# Prepare targets for installation.
130preinstall/fast:
131 $(MAKE) -f CMakeFiles/Makefile2 preinstall
132.PHONY : preinstall/fast
133
134# clear depends
135depend:
136 $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
137.PHONY : depend
138
139#=============================================================================
140# Target rules for targets named scratch
141
142# Build rule for target.
143scratch: cmake_check_build_system
144 $(MAKE) -f CMakeFiles/Makefile2 scratch
145.PHONY : scratch
146
147# fast build rule for target.
148scratch/fast:
149 $(MAKE) -f CMakeFiles/scratch.dir/build.make CMakeFiles/scratch.dir/build
150.PHONY : scratch/fast
151
152src/entry.o: src/entry.c.o
153.PHONY : src/entry.o
154
155# target to build an object file
156src/entry.c.o:
157 $(MAKE) -f CMakeFiles/scratch.dir/build.make CMakeFiles/scratch.dir/src/entry.c.o
158.PHONY : src/entry.c.o
159
160src/entry.i: src/entry.c.i
161.PHONY : src/entry.i
162
163# target to preprocess a source file
164src/entry.c.i:
165 $(MAKE) -f CMakeFiles/scratch.dir/build.make CMakeFiles/scratch.dir/src/entry.c.i
166.PHONY : src/entry.c.i
167
168src/entry.s: src/entry.c.s
169.PHONY : src/entry.s
170
171# target to generate assembly for a file
172src/entry.c.s:
173 $(MAKE) -f CMakeFiles/scratch.dir/build.make CMakeFiles/scratch.dir/src/entry.c.s
174.PHONY : src/entry.c.s
175
176src/main_window.o: src/main_window.c.o
177.PHONY : src/main_window.o
178
179# target to build an object file
180src/main_window.c.o:
181 $(MAKE) -f CMakeFiles/scratch.dir/build.make CMakeFiles/scratch.dir/src/main_window.c.o
182.PHONY : src/main_window.c.o
183
184src/main_window.i: src/main_window.c.i
185.PHONY : src/main_window.i
186
187# target to preprocess a source file
188src/main_window.c.i:
189 $(MAKE) -f CMakeFiles/scratch.dir/build.make CMakeFiles/scratch.dir/src/main_window.c.i
190.PHONY : src/main_window.c.i
191
192src/main_window.s: src/main_window.c.s
193.PHONY : src/main_window.s
194
195# target to generate assembly for a file
196src/main_window.c.s:
197 $(MAKE) -f CMakeFiles/scratch.dir/build.make CMakeFiles/scratch.dir/src/main_window.c.s
198.PHONY : src/main_window.c.s
199
200src/menu.o: src/menu.c.o
201.PHONY : src/menu.o
202
203# target to build an object file
204src/menu.c.o:
205 $(MAKE) -f CMakeFiles/scratch.dir/build.make CMakeFiles/scratch.dir/src/menu.c.o
206.PHONY : src/menu.c.o
207
208src/menu.i: src/menu.c.i
209.PHONY : src/menu.i
210
211# target to preprocess a source file
212src/menu.c.i:
213 $(MAKE) -f CMakeFiles/scratch.dir/build.make CMakeFiles/scratch.dir/src/menu.c.i
214.PHONY : src/menu.c.i
215
216src/menu.s: src/menu.c.s
217.PHONY : src/menu.s
218
219# target to generate assembly for a file
220src/menu.c.s:
221 $(MAKE) -f CMakeFiles/scratch.dir/build.make CMakeFiles/scratch.dir/src/menu.c.s
222.PHONY : src/menu.c.s
223
224src/notebook.o: src/notebook.c.o
225.PHONY : src/notebook.o
226
227# target to build an object file
228src/notebook.c.o:
229 $(MAKE) -f CMakeFiles/scratch.dir/build.make CMakeFiles/scratch.dir/src/notebook.c.o
230.PHONY : src/notebook.c.o
231
232src/notebook.i: src/notebook.c.i
233.PHONY : src/notebook.i
234
235# target to preprocess a source file
236src/notebook.c.i:
237 $(MAKE) -f CMakeFiles/scratch.dir/build.make CMakeFiles/scratch.dir/src/notebook.c.i
238.PHONY : src/notebook.c.i
239
240src/notebook.s: src/notebook.c.s
241.PHONY : src/notebook.s
242
243# target to generate assembly for a file
244src/notebook.c.s:
245 $(MAKE) -f CMakeFiles/scratch.dir/build.make CMakeFiles/scratch.dir/src/notebook.c.s
246.PHONY : src/notebook.c.s
247
248# Help Target
249help:
250 @echo "The following are some of the valid targets for this Makefile:"
251 @echo "... all (the default if no target is provided)"
252 @echo "... clean"
253 @echo "... depend"
254 @echo "... edit_cache"
255 @echo "... install"
256 @echo "... install/local"
257 @echo "... install/strip"
258 @echo "... list_install_components"
259 @echo "... rebuild_cache"
260 @echo "... scratch"
261 @echo "... src/entry.o"
262 @echo "... src/entry.i"
263 @echo "... src/entry.s"
264 @echo "... src/main_window.o"
265 @echo "... src/main_window.i"
266 @echo "... src/main_window.s"
267 @echo "... src/menu.o"
268 @echo "... src/menu.i"
269 @echo "... src/menu.s"
270 @echo "... src/notebook.o"
271 @echo "... src/notebook.i"
272 @echo "... src/notebook.s"
273.PHONY : help
274
275
276
277#=============================================================================
278# Special targets to cleanup operation of make.
279
280# Special rule to run CMake to check the build system integrity.
281# No rule that depends on this can have commands that come from listfiles
282# because they might be regenerated.
283cmake_check_build_system:
284 $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
285.PHONY : cmake_check_build_system
286
2870
=== modified file 'cmake/Translations.cmake'
--- cmake/Translations.cmake 2013-01-05 00:23:48 +0000
+++ cmake/Translations.cmake 2014-07-25 19:26:37 +0000
@@ -20,22 +20,47 @@
20 add_custom_target (pot COMMENT “Building translation catalog.”)20 add_custom_target (pot COMMENT “Building translation catalog.”)
21 find_program (XGETTEXT_EXECUTABLE xgettext)21 find_program (XGETTEXT_EXECUTABLE xgettext)
2222
23
24 set(C_SOURCE "")23 set(C_SOURCE "")
24 set(VALA_SOURCE "")
25 set(GLADE_SOURCE "")
2526
26 foreach(FILES_INPUT ${ARGN})27 foreach(FILES_INPUT ${ARGN})
27 file (GLOB SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/${FILES_INPUT}/*.c)28 set(BASE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${FILES_INPUT})
28 foreach(C_FILE ${SOURCE_FILES})29
29 set(C_SOURCE ${C_SOURCE} ${C_FILE})30 file (GLOB_RECURSE SOURCE_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/ ${BASE_DIRECTORY}/*.c)
30 endforeach()31 foreach(C_FILE ${SOURCE_FILES})
31 file (GLOB SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/${FILES_INPUT}/*.vala)32 set(C_SOURCE ${C_SOURCE} ${C_FILE})
32 foreach(C_FILE ${SOURCE_FILES})33 endforeach()
33 set(C_SOURCE ${C_SOURCE} ${C_FILE})34
35 file (GLOB_RECURSE SOURCE_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/ ${BASE_DIRECTORY}/*.vala)
36 foreach(VALA_C_FILE ${SOURCE_FILES})
37 set(VALA_SOURCE ${VALA_SOURCE} ${VALA_C_FILE})
38 endforeach()
39
40 file (GLOB_RECURSE SOURCE_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/ ${BASE_DIRECTORY}/*.ui)
41 foreach(GLADE_C_FILE ${SOURCE_FILES})
42 set(GLADE_SOURCE ${GLADE_SOURCE} ${GLADE_C_FILE})
34 endforeach()43 endforeach()
35 endforeach()44 endforeach()
3645
37 add_custom_command (TARGET pot COMMAND46 set(BASE_XGETTEXT_COMMAND
38 ${XGETTEXT_EXECUTABLE} -c -d ${NLS_PACKAGE} -o ${CMAKE_CURRENT_SOURCE_DIR}/${NLS_PACKAGE}.pot47 ${XGETTEXT_EXECUTABLE} -d ${NLS_PACKAGE}
39 ${VALA_SOURCE} ${C_SOURCE} --keyword="_" --keyword="N_" --keyword="C_:1c,2" --from-code=UTF-848 -o ${CMAKE_CURRENT_SOURCE_DIR}/${NLS_PACKAGE}.pot
40 )49 --add-comments="/" --keyword="_" --keyword="N_" --keyword="C_:1c,2" --keyword="NC_:1c,2" --keyword="ngettext:1,2" --keyword="Q_:1g" --from-code=UTF-8)
50
51 set(CONTINUE_FLAG "")
52
53 IF(NOT "${C_SOURCE}" STREQUAL "")
54 add_custom_command(TARGET pot WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMAND ${BASE_XGETTEXT_COMMAND} ${C_SOURCE})
55 set(CONTINUE_FLAG "-j")
56 ENDIF()
57
58 IF(NOT "${VALA_SOURCE}" STREQUAL "")
59 add_custom_command(TARGET pot WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMAND ${BASE_XGETTEXT_COMMAND} ${CONTINUE_FLAG} -LC\# ${VALA_SOURCE})
60 set(CONTINUE_FLAG "-j")
61 ENDIF()
62
63 IF(NOT "${GLADE_SOURCE}" STREQUAL "")
64 add_custom_command (TARGET pot WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMAND ${BASE_XGETTEXT_COMMAND} ${CONTINUE_FLAG} -LGlade ${GLADE_SOURCE})
65 ENDIF()
41endmacro()66endmacro()
4267
=== modified file 'cmake/ValaPrecompile.cmake'
--- cmake/ValaPrecompile.cmake 2012-05-01 18:01:01 +0000
+++ cmake/ValaPrecompile.cmake 2014-07-25 19:26:37 +0000
@@ -1,5 +1,6 @@
1##1##
2# Copyright 2009-2010 Jakob Westhoff. All rights reserved.2# Copyright 2009-2010 Jakob Westhoff. All rights reserved.
3# Copyright 2012 elementary.
3# 4#
4# Redistribution and use in source and binary forms, with or without5# Redistribution and use in source and binary forms, with or without
5# modification, are permitted provided that the following conditions are met:6# modification, are permitted provided that the following conditions are met:
@@ -74,10 +75,18 @@
74# be a header file as well as an internal header file being generated called75# be a header file as well as an internal header file being generated called
75# <provided_name>.h and <provided_name>_internal.h76# <provided_name>.h and <provided_name>_internal.h
76#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#
77# The following call is a simple example to the vala_precompile macro showing86# The following call is a simple example to the vala_precompile macro showing
78# an example to every of the optional sections:87# an example to every of the optional sections:
79#88#
80# vala_precompile(VALA_C89# vala_precompile(VALA_C mytargetname
81# source1.vala90# source1.vala
82# source2.vala91# source2.vala
83# source3.vala92# source3.vala
@@ -95,14 +104,19 @@
95# myvapi104# myvapi
96# GENERATE_HEADER105# GENERATE_HEADER
97# myheader106# myheader
107# GENERATE_GIR
108# mygir
109# GENERATE_SYMBOLS
110# mysymbols
98# )111# )
99#112#
100# Most important is the variable VALA_C which will contain all the generated c113# Most important is the variable VALA_C which will contain all the generated c
101# file names after the call.114# file names after the call.
102##115##
103116
104macro(vala_precompile output)117macro(vala_precompile output target_name)
105 parse_arguments(ARGS "PACKAGES;OPTIONS;DIRECTORY;GENERATE_HEADER;GENERATE_VAPI;CUSTOM_VAPIS" "" ${ARGN})118 parse_arguments(ARGS "TARGET;PACKAGES;OPTIONS;DIRECTORY;GENERATE_GIR;GENERATE_SYMBOLS;GENERATE_HEADER;GENERATE_VAPI;CUSTOM_VAPIS" "" ${ARGN})
119
106 if(ARGS_DIRECTORY)120 if(ARGS_DIRECTORY)
107 set(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${ARGS_DIRECTORY})121 set(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${ARGS_DIRECTORY})
108 else(ARGS_DIRECTORY)122 else(ARGS_DIRECTORY)
@@ -115,15 +129,17 @@
115 endforeach(pkg ${ARGS_PACKAGES})129 endforeach(pkg ${ARGS_PACKAGES})
116 set(in_files "")130 set(in_files "")
117 set(out_files "")131 set(out_files "")
132 set(out_files_display "")
118 set(${output} "")133 set(${output} "")
134
119 foreach(src ${ARGS_DEFAULT_ARGS})135 foreach(src ${ARGS_DEFAULT_ARGS})
120 string(REPLACE ${CMAKE_CURRENT_SOURCE_DIR}/ "" src ${src})
121 string(REGEX MATCH "^/" IS_MATCHED ${src})136 string(REGEX MATCH "^/" IS_MATCHED ${src})
122 if(${IS_MATCHED} MATCHES "/")137 if(${IS_MATCHED} MATCHES "/")
123 list(APPEND in_files "${src}")138 set(src_file_path ${src})
124 else()139 else()
125 list(APPEND in_files "${CMAKE_CURRENT_SOURCE_DIR}/${src}")140 set(src_file_path ${CMAKE_CURRENT_SOURCE_DIR}/${src})
126 endif()141 endif()
142 list(APPEND in_files ${src_file_path})
127 string(REPLACE ".vala" ".c" src ${src})143 string(REPLACE ".vala" ".c" src ${src})
128 string(REPLACE ".gs" ".c" src ${src})144 string(REPLACE ".gs" ".c" src ${src})
129 if(${IS_MATCHED} MATCHES "/")145 if(${IS_MATCHED} MATCHES "/")
@@ -135,6 +151,7 @@
135 list(APPEND out_files "${DIRECTORY}/${src}")151 list(APPEND out_files "${DIRECTORY}/${src}")
136 endif()152 endif()
137 list(APPEND ${output} ${out_file})153 list(APPEND ${output} ${out_file})
154 list(APPEND out_files_display "${src}")
138 endforeach(src ${ARGS_DEFAULT_ARGS})155 endforeach(src ${ARGS_DEFAULT_ARGS})
139156
140 set(custom_vapi_arguments "")157 set(custom_vapi_arguments "")
@@ -151,7 +168,8 @@
151 set(vapi_arguments "")168 set(vapi_arguments "")
152 if(ARGS_GENERATE_VAPI)169 if(ARGS_GENERATE_VAPI)
153 list(APPEND out_files "${DIRECTORY}/${ARGS_GENERATE_VAPI}.vapi")170 list(APPEND out_files "${DIRECTORY}/${ARGS_GENERATE_VAPI}.vapi")
154 set(vapi_arguments "--internal-vapi=${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")
155173
156 # Header and internal header is needed to generate internal vapi174 # Header and internal header is needed to generate internal vapi
157 if (NOT ARGS_GENERATE_HEADER)175 if (NOT ARGS_GENERATE_HEADER)
@@ -162,26 +180,71 @@
162 set(header_arguments "")180 set(header_arguments "")
163 if(ARGS_GENERATE_HEADER)181 if(ARGS_GENERATE_HEADER)
164 list(APPEND out_files "${DIRECTORY}/${ARGS_GENERATE_HEADER}.h")182 list(APPEND out_files "${DIRECTORY}/${ARGS_GENERATE_HEADER}.h")
165 list(APPEND out_files "${DIRECTORY}/${ARGS_GENERATE_HEADER}_internal.h")183 list(APPEND out_files_display "${ARGS_GENERATE_HEADER}.h")
166 list(APPEND header_arguments "--header=${DIRECTORY}/${ARGS_GENERATE_HEADER}.h")184 list(APPEND header_arguments "--header=${ARGS_GENERATE_HEADER}.h")
167 list(APPEND header_arguments "--internal-header=${DIRECTORY}/${ARGS_GENERATE_HEADER}_internal.h")
168 endif(ARGS_GENERATE_HEADER)185 endif(ARGS_GENERATE_HEADER)
169186
170 add_custom_command(OUTPUT ${out_files} 187 set(gir_arguments "")
188 set(gircomp_command "")
189 if(ARGS_GENERATE_GIR)
190 list(APPEND out_files "${DIRECTORY}/${ARGS_GENERATE_GIR}.gir")
191 list(APPEND out_files_display "${ARGS_GENERATE_GIR}.gir")
192 set(gir_arguments "--gir=${ARGS_GENERATE_GIR}.gir")
193
194 include (FindGirCompiler)
195 find_package(GirCompiler REQUIRED)
196
197 set(gircomp_command
198 COMMAND
199 ${G_IR_COMPILER_EXECUTABLE}
200 ARGS
201 "${DIRECTORY}/${ARGS_GENERATE_GIR}.gir"
202 -o "${DIRECTORY}/${ARGS_GENERATE_GIR}.typelib")
203 endif(ARGS_GENERATE_GIR)
204
205 set(symbols_arguments "")
206 if(ARGS_GENERATE_SYMBOLS)
207 list(APPEND out_files "${DIRECTORY}/${ARGS_GENERATE_SYMBOLS}.symbols")
208 list(APPEND out_files_display "${ARGS_GENERATE_SYMBOLS}.symbols")
209 set(symbols_arguments "--symbols=${ARGS_GENERATE_SYMBOLS}.symbols")
210 endif(ARGS_GENERATE_SYMBOLS)
211
212 # Workaround for a bug that would make valac run twice. This file is written
213 # after the vala compiler generates C source code.
214 set(OUTPUT_STAMP ${CMAKE_CURRENT_BINARY_DIR}/${target_name}_valac.stamp)
215
216 add_custom_command(
217 OUTPUT
218 ${OUTPUT_STAMP}
171 COMMAND 219 COMMAND
172 ${VALA_EXECUTABLE} 220 ${VALA_EXECUTABLE}
173 ARGS 221 ARGS
174 "-C" 222 "-C"
175 ${header_arguments} 223 ${header_arguments}
176 ${vapi_arguments}224 ${vapi_arguments}
225 ${gir_arguments}
226 ${symbols_arguments}
177 "-b" ${CMAKE_CURRENT_SOURCE_DIR} 227 "-b" ${CMAKE_CURRENT_SOURCE_DIR}
178 "-d" ${DIRECTORY} 228 "-d" ${DIRECTORY}
179 ${vala_pkg_opts} 229 ${vala_pkg_opts}
180 ${ARGS_OPTIONS} 230 ${ARGS_OPTIONS}
231 "-g"
232 "--save-temps"
181 ${in_files} 233 ${in_files}
182 ${custom_vapi_arguments}234 ${custom_vapi_arguments}
235 COMMAND
236 touch
237 ARGS
238 ${OUTPUT_STAMP}
183 DEPENDS 239 DEPENDS
184 ${in_files} 240 ${in_files}
185 ${ARGS_CUSTOM_VAPIS}241 ${ARGS_CUSTOM_VAPIS}
242 COMMENT
243 "Generating ${out_files_display}"
244 ${gircomp_command}
186 )245 )
246
247 # This command will be run twice for some reason (pass a non-empty string to COMMENT
248 # in order to see it). Since valac is not executed from here, this won't be a problem.
249 add_custom_command(OUTPUT ${out_files} DEPENDS ${OUTPUT_STAMP} COMMENT "")
187endmacro(vala_precompile)250endmacro(vala_precompile)

Subscribers

People subscribed via source and target branches