~elementary-pantheon/contractor/master

« back to all changes in this revision

Viewing changes to cmake/ValaVersion.cmake

  • Committer: Cody Garver
  • Author(s): Matt Harris
  • Date: 2018-05-24 21:16:56 UTC
  • Revision ID: git-v1:fe6f23e1d24ba1b63c76e504af8e16bb31012c97
Switch to Meson (#25)

Show diffs side-by-side

added added

removed removed

Lines of Context:
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
 
include(ParseArguments)
31
 
find_package(Vala REQUIRED)
32
 
 
33
 
##
34
 
# Ensure a certain valac version is available
35
 
#
36
 
# The initial argument is the version to check for
37
 
38
 
# It may be followed by a optional parameter to specifiy a version range. The
39
 
# following options are valid:
40
 
41
 
# EXACT
42
 
#   Vala needs to be available in the exact version given
43
 
44
 
# MINIMUM
45
 
#   The provided version is the minimum version. Therefore Vala needs to be
46
 
#   available in the given version or any higher version
47
 
#
48
 
# MAXIMUM
49
 
#   The provided version is the maximum. Therefore Vala needs to be available
50
 
#   in the given version or any version older than this
51
 
#
52
 
# If no option is specified the version will be treated as a minimal version.
53
 
##
54
 
macro(ensure_vala_version version)
55
 
    parse_arguments(ARGS "" "MINIMUM;MAXIMUM;EXACT" ${ARGN})
56
 
        set(compare_message "")
57
 
        set(error_message "")
58
 
        if(ARGS_MINIMUM)
59
 
                set(compare_message "a minimum ")
60
 
                set(error_message "or greater ")
61
 
        elseif(ARGS_MAXIMUM)
62
 
                set(compare_message "a maximum ")
63
 
                set(error_message "or less ")
64
 
        endif(ARGS_MINIMUM)
65
 
        
66
 
        message(STATUS 
67
 
                "checking for ${compare_message}Vala version of ${version}"
68
 
        )
69
 
 
70
 
        unset(version_accepted)
71
 
        
72
 
        # MINIMUM is the default if no option is specified
73
 
        if(ARGS_EXACT)
74
 
                if(${VALA_VERSION} VERSION_EQUAL ${version} )
75
 
                        set(version_accepted TRUE)      
76
 
                endif(${VALA_VERSION} VERSION_EQUAL ${version})
77
 
        elseif(ARGS_MAXIMUM)
78
 
                if(${VALA_VERSION} VERSION_LESS ${version} OR ${VALA_VERSION} VERSION_EQUAL ${version})
79
 
                        set(version_accepted TRUE)      
80
 
                endif(${VALA_VERSION} VERSION_LESS ${version} OR ${VALA_VERSION} VERSION_EQUAL ${version})
81
 
        else(ARGS_MAXIMUM)
82
 
                if(${VALA_VERSION} VERSION_GREATER ${version} OR ${VALA_VERSION} VERSION_EQUAL ${version})
83
 
                        set(version_accepted TRUE)      
84
 
                endif(${VALA_VERSION} VERSION_GREATER ${version} OR ${VALA_VERSION} VERSION_EQUAL ${version})
85
 
        endif(ARGS_EXACT)
86
 
 
87
 
        if (NOT version_accepted)
88
 
                message(FATAL_ERROR 
89
 
                        "Vala version ${version} ${error_message}is required."
90
 
                )
91
 
        endif(NOT version_accepted)
92
 
 
93
 
        message(STATUS
94
 
                "  found Vala, version ${VALA_VERSION}"
95
 
        )
96
 
endmacro(ensure_vala_version)