[jhbuild] cmake: document force-non-srcdir-builds attribute



commit 514b75d81c9b1723ba56a7cd1e2f8a646d408d35
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Wed Aug 2 16:55:34 2017 +0300

    cmake: document force-non-srcdir-builds attribute
    
    Commit 36c637705c1444b93c87d0b46dda21848a56cc56 added support for
    this attribute, but added documentation to wrong module.
    
    At same time add this attribute to moduleset.dtd and moduleset.rnc
    files.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=785836

 doc/C/index.docbook       |    7 ++++++-
 jhbuild/modtypes/cmake.py |    6 +++++-
 modulesets/moduleset.dtd  |    3 ++-
 modulesets/moduleset.rnc  |    4 +++-
 4 files changed, 16 insertions(+), 4 deletions(-)
---
diff --git a/doc/C/index.docbook b/doc/C/index.docbook
index e8e896c..159883b 100644
--- a/doc/C/index.docbook
+++ b/doc/C/index.docbook
@@ -3012,7 +3012,8 @@ Optional packages: (JHBuild will build the missing packages)
 <programlisting>
   &lt;cmake id="<replaceable>modulename</replaceable>"
             [ skip-install="<replaceable>skip-install</replaceable>" ]
-            [ cmakedir="<replaceable>cmakedir</replaceable>" ]&gt;
+            [ cmakedir="<replaceable>cmakedir</replaceable>" ]
+            [ force-non-srcdir-builds="<replaceable>force-non-srcdir-builds</replaceable>" ]&gt;
   &lt;branch [ ... ] &gt;
     [...]
   &lt;/branch&gt;
@@ -3031,6 +3032,10 @@ Optional packages: (JHBuild will build the missing packages)
         <para>The <sgmltag class="attribute">cmakedir</sgmltag> attribute
           specifies the subdirectory where cmake will run in relation to srcdir.
         </para>
+
+        <para>The <sgmltag class="attribute">force-non-srcdir-builds</sgmltag>
+          attribute is used to mark modules that can't be cleanly built from
+          the source directory, but can be built from outside it.</para>
       </section>
 
       <section id="moduleset-syntax-defs-meson">
diff --git a/jhbuild/modtypes/cmake.py b/jhbuild/modtypes/cmake.py
index c41d84b..d7868db 100644
--- a/jhbuild/modtypes/cmake.py
+++ b/jhbuild/modtypes/cmake.py
@@ -170,7 +170,11 @@ class CMakeModule(MakeModule, DownloadableModule):
         return 'cmake', [('id', 'name', None),
                          ('skip-install', 'skip_install_phase', False),
                          ('use-ninja', 'use_ninja', True),
-                         ('cmakedir', None)]
+                         ('cmakedir', None),
+                         ('supports-non-srcdir-builds',
+                          'supports_non_srcdir_builds', True),
+                         ('force-non-srcdir-builds',
+                          'force_non_srcdir_builds', False)]
 
 
 def parse_cmake(node, config, uri, repositories, default_repo):
diff --git a/modulesets/moduleset.dtd b/modulesets/moduleset.dtd
index bee1a6a..c4f8491 100644
--- a/modulesets/moduleset.dtd
+++ b/modulesets/moduleset.dtd
@@ -110,7 +110,8 @@
        id              CDATA   #REQUIRED
        cmakeargs       CDATA   #IMPLIED
        makeargs        CDATA   #IMPLIED
-       supports-non-srcdir-builds (yes|no) "yes">
+       supports-non-srcdir-builds (yes|no) "yes"
+       force-non-srcdir-builds (yes|no) "no">
 
 <!ELEMENT cmakeargs EMPTY>
 <!ATTLIST cmakeargs value CDATA #REQUIRED>
diff --git a/modulesets/moduleset.rnc b/modulesets/moduleset.rnc
index a67abed..e46dcdb 100644
--- a/modulesets/moduleset.rnc
+++ b/modulesets/moduleset.rnc
@@ -154,7 +154,9 @@ cmake = element cmake { attlist.cmake, cmakeargsif*, cmakeargs*, makeargs*, pkg-
 attlist.cmake &=
   attribute id { text },
   attribute cmakeargs { text }?,
-  attribute makeargs { text }?
+  attribute makeargs { text }?,
+  attribute supports-non-srcdir-builds { "yes" | "no" }?,
+  attribute force-non-srcdir-builds { "yes" | "no" }?
 cmakeargs = element cmakeargs { attlist.cmakeargs }
 attlist.cmakeargs &= attribute value { text }
 mesonargsif = element if { attlist.if, mesonargsif*, mesonargs*, makeargs* }


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