[latexila] Vala_CMake updated



commit a23284d7a53667e084ab0306941e0d8bf09b11d0
Author: SÃbastien Wilmet <swilmet src gnome org>
Date:   Sun Jul 17 16:55:29 2011 +0200

    Vala_CMake updated

 CMakeLists.txt                                     |    6 +-
 cmake/vala/FindVala.cmake                          |   58 +++++-----
 cmake/vala/ParseArguments.cmake                    |   36 ------
 cmake/vala/{ValaPrecompile.cmake => UseVala.cmake} |  121 ++++++++++----------
 cmake/vala/ValaVersion.cmake                       |   96 ----------------
 5 files changed, 96 insertions(+), 221 deletions(-)
---
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1c18294..71626da 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -26,10 +26,8 @@ set (ICONS_DIR "${CMAKE_INSTALL_PREFIX}/share/icons/hicolor")
 
 if (BUILD_VALA)
 	list (APPEND CMAKE_MODULE_PATH "${latexila_SOURCE_DIR}/cmake/vala")
-	include (ValaPrecompile)
-	include (ValaVersion)
-	find_package (Vala REQUIRED)
-	ensure_vala_version ("0.12.1" MINIMUM)
+	find_package (Vala "0.12.1" REQUIRED)
+	include (${VALA_USE_FILE})
 endif ()
 
 find_package (PkgConfig)
diff --git a/cmake/vala/FindVala.cmake b/cmake/vala/FindVala.cmake
index aa3a6e7..45f9964 100644
--- a/cmake/vala/FindVala.cmake
+++ b/cmake/vala/FindVala.cmake
@@ -1,5 +1,22 @@
 ##
+# Find module for the Vala compiler (valac)
+#
+# This module determines wheter a Vala compiler is installed on the current
+# system and where its executable is.
+#
+# Call the module using "find_package(Vala) from within your CMakeLists.txt.
+#
+# The following variables will be set after an invocation:
+#
+#  VALA_FOUND       Whether the vala compiler has been found or not
+#  VALA_EXECUTABLE  Full path to the valac executable if it has been found
+#  VALA_VERSION     Version number of the available valac
+#  VALA_USE_FILE    Include this file to define the vala_precompile function
+##
+
+##
 # Copyright 2009-2010 Jakob Westhoff. All rights reserved.
+# Copyright 2010-2011 Daniel Pfeifer
 # 
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions are met:
@@ -27,39 +44,26 @@
 # either expressed or implied, of Jakob Westhoff
 ##
 
-##
-# Find module for the Vala compiler (valac)
-#
-# This module determines wheter a Vala compiler is installed on the current
-# system and where its executable is.
-#
-# Call the module using "find_package(Vala) from within your CMakeLists.txt.
-#
-# The following variables will be set after an invocation:
-#
-#  VALA_FOUND       Whether the vala compiler has been found or not
-#  VALA_EXECUTABLE  Full path to the valac executable if it has been found
-#  VALA_VERSION     Version number of the available valac
-##
-
-
 # Search for the valac executable in the usual system paths.
-find_program(VALA_EXECUTABLE
-  NAMES valac)
+find_program(VALA_EXECUTABLE valac)
+mark_as_advanced(VALA_EXECUTABLE)
+
+# Determine the valac version
+if(VALA_EXECUTABLE)
+    execute_process(COMMAND ${VALA_EXECUTABLE} "--version" 
+                    OUTPUT_VARIABLE VALA_VERSION
+                    OUTPUT_STRIP_TRAILING_WHITESPACE)
+    string(REPLACE "Vala " "" VALA_VERSION "${VALA_VERSION}")
+endif(VALA_EXECUTABLE)
 
 # Handle the QUIETLY and REQUIRED arguments, which may be given to the find call.
 # Furthermore set VALA_FOUND to TRUE if Vala has been found (aka.
 # VALA_EXECUTABLE is set)
 
 include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(Vala DEFAULT_MSG VALA_EXECUTABLE)
+find_package_handle_standard_args(Vala
+    REQUIRED_VARS VALA_EXECUTABLE
+    VERSION_VAR VALA_VERSION)
 
-mark_as_advanced(VALA_EXECUTABLE)
+set(VALA_USE_FILE "${CMAKE_CURRENT_LIST_DIR}/UseVala.cmake")
 
-# Determine the valac version
-if(VALA_FOUND)
-    execute_process(COMMAND ${VALA_EXECUTABLE} "--version" 
-                    OUTPUT_VARIABLE "VALA_VERSION")
-    string(REPLACE "Vala" "" "VALA_VERSION" ${VALA_VERSION})
-    string(STRIP ${VALA_VERSION} "VALA_VERSION")
-endif(VALA_FOUND)
diff --git a/cmake/vala/ValaPrecompile.cmake b/cmake/vala/UseVala.cmake
similarity index 85%
rename from cmake/vala/ValaPrecompile.cmake
rename to cmake/vala/UseVala.cmake
index 19c4739..352921c 100644
--- a/cmake/vala/ValaPrecompile.cmake
+++ b/cmake/vala/UseVala.cmake
@@ -1,60 +1,28 @@
 ##
-# Copyright 2009-2010 Jakob Westhoff. All rights reserved.
-# 
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-# 
-#    1. Redistributions of source code must retain the above copyright notice,
-#       this list of conditions and the following disclaimer.
-# 
-#    2. Redistributions in binary form must reproduce the above copyright notice,
-#       this list of conditions and the following disclaimer in the documentation
-#       and/or other materials provided with the distribution.
-# 
-# THIS SOFTWARE IS PROVIDED BY JAKOB WESTHOFF ``AS IS'' AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-# EVENT SHALL JAKOB WESTHOFF OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# 
-# The views and conclusions contained in the software and documentation are those
-# of the authors and should not be interpreted as representing official policies,
-# either expressed or implied, of Jakob Westhoff
-##
-
-include(ParseArguments)
-find_package(Vala REQUIRED)
-
-##
 # Compile vala files to their c equivalents for further processing. 
 #
-# The "vala_precompile" macro takes care of calling the valac executable on the
-# given source to produce c files which can then be processed further using
+# The "vala_precompile" function takes care of calling the valac executable on
+# the given source to produce c files which can then be processed further using
 # default cmake functions.
-# 
+#
 # The first parameter provided is a variable, which will be filled with a list
 # of c files outputted by the vala compiler. This list can than be used in
 # conjuction with functions like "add_executable" or others to create the
 # neccessary compile rules with CMake.
-# 
-# The initial variable is followed by a list of .vala files to be compiled.
-# Please take care to add every vala file belonging to the currently compiled
-# project or library as Vala will otherwise not be able to resolve all
-# dependencies.
-# 
+#
 # The following sections may be specified afterwards to provide certain options
 # to the vala compiler:
-# 
+#
+# SOURCES
+#   A list of .vala files to be compiled. Please take care to add every vala
+#   file belonging to the currently compiled project or library as Vala will
+#   otherwise not be able to resolve all dependencies.
+#
 # PACKAGES
 #   A list of vala packages/libraries to be used during the compile cycle. The
 #   package names are exactly the same, as they would be passed to the valac
 #   "--pkg=" option.
-# 
+#
 # OPTIONS
 #   A list of optional options to be passed to the valac executable. This can be
 #   used to pass "--thread" for example to enable multi-threading support.
@@ -68,7 +36,7 @@ find_package(Vala REQUIRED)
 #   Pass all the needed flags to the compiler to create an internal vapi for
 #   the compiled library. The provided name will be used for this and a
 #   <provided_name>.vapi file will be created.
-# 
+#
 # GENERATE_HEADER
 #   Let the compiler generate a header file for the compiled code. There will
 #   be a header file as well as an internal header file being generated called
@@ -77,32 +45,70 @@ find_package(Vala REQUIRED)
 # The following call is a simple example to the vala_precompile macro showing
 # an example to every of the optional sections:
 #
+#   find_package(Vala "0.12" REQUIRED)
+#   inlcude(${VALA_USE_FILE})
+#
 #   vala_precompile(VALA_C
+#     SOURCES
 #       source1.vala
 #       source2.vala
 #       source3.vala
-#   PACKAGES
+#     PACKAGES
 #       gtk+-2.0
 #       gio-1.0
 #       posix
-#   DIRECTORY
+#     DIRECTORY
 #       gen
-#   OPTIONS
+#     OPTIONS
 #       --thread
-#   CUSTOM_VAPIS
+#     CUSTOM_VAPIS
 #       some_vapi.vapi
-#   GENERATE_VAPI
+#     GENERATE_VAPI
 #       myvapi
-#   GENERATE_HEADER
+#     GENERATE_HEADER
 #       myheader
-#   )
+#     )
 #
 # Most important is the variable VALA_C which will contain all the generated c
 # file names after the call.
 ##
 
-macro(vala_precompile output)
-    parse_arguments(ARGS "PACKAGES;OPTIONS;DIRECTORY;GENERATE_HEADER;GENERATE_VAPI;CUSTOM_VAPIS" "" ${ARGN})
+##
+# Copyright 2009-2010 Jakob Westhoff. All rights reserved.
+# Copyright 2010-2011 Daniel Pfeifer
+# 
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# 
+#    1. Redistributions of source code must retain the above copyright notice,
+#       this list of conditions and the following disclaimer.
+# 
+#    2. Redistributions in binary form must reproduce the above copyright notice,
+#       this list of conditions and the following disclaimer in the documentation
+#       and/or other materials provided with the distribution.
+# 
+# THIS SOFTWARE IS PROVIDED BY JAKOB WESTHOFF ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL JAKOB WESTHOFF OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# 
+# The views and conclusions contained in the software and documentation are those
+# of the authors and should not be interpreted as representing official policies,
+# either expressed or implied, of Jakob Westhoff
+##
+
+include(CMakeParseArguments)
+
+function(vala_precompile output)
+    cmake_parse_arguments(ARGS "" "DIRECTORY;GENERATE_HEADER;GENERATE_VAPI"
+        "SOURCES;PACKAGES;OPTIONS;CUSTOM_VAPIS" ${ARGN})
+
     if(ARGS_DIRECTORY)
         set(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${ARGS_DIRECTORY})
     else(ARGS_DIRECTORY)
@@ -115,15 +121,13 @@ macro(vala_precompile output)
     endforeach(pkg ${ARGS_PACKAGES})
     set(in_files "")
     set(out_files "")
-    set(${output} "")
-    foreach(src ${ARGS_DEFAULT_ARGS})
+    foreach(src ${ARGS_SOURCES} ${ARGS_UNPARSED_ARGUMENTS})
         list(APPEND in_files "${CMAKE_CURRENT_SOURCE_DIR}/${src}")
         string(REPLACE ".vala" ".c" src ${src})
         string(REPLACE ".gs" ".c" src ${src})
         set(out_file "${DIRECTORY}/${src}")
         list(APPEND out_files "${DIRECTORY}/${src}")
-        list(APPEND ${output} ${out_file})
-    endforeach(src ${ARGS_DEFAULT_ARGS})
+    endforeach(src ${ARGS_SOURCES} ${ARGS_UNPARSED_ARGUMENTS})
 
     set(custom_vapi_arguments "")
     if(ARGS_CUSTOM_VAPIS)
@@ -172,4 +176,5 @@ macro(vala_precompile output)
         ${in_files} 
         ${ARGS_CUSTOM_VAPIS}
     )
-endmacro(vala_precompile)
+    set(${output} ${out_files} PARENT_SCOPE)
+endfunction(vala_precompile)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]