zorba-coders team mailing list archive
-
zorba-coders team
-
Mailing list archive
-
Message #03689
[Merge] lp:~zorba-coders/zorba/fix-declare-module-bug917981 into lp:zorba
Chris Hillery has proposed merging lp:~zorba-coders/zorba/fix-declare-module-bug917981 into lp:zorba.
Requested reviews:
Chris Hillery (ceejatec)
Sorin Marian Nasoi (sorin.marian.nasoi)
Related bugs:
Bug #917981 in Zorba: "DECLARE_ZORBA_MODULE() should raise error on duplicates"
https://bugs.launchpad.net/zorba/+bug/917981
For more details, see:
https://code.launchpad.net/~zorba-coders/zorba/fix-declare-module-bug917981/+merge/88977
--
https://code.launchpad.net/~zorba-coders/zorba/fix-declare-module-bug917981/+merge/88977
Your team Zorba Coders is subscribed to branch lp:zorba.
=== modified file 'ChangeLog'
--- ChangeLog 2012-01-11 17:30:25 +0000
+++ ChangeLog 2012-01-18 02:19:25 +0000
@@ -21,6 +21,7 @@
support.
* zerr is not predeclared anymore to be http://www.zorba-xquery.com/errors
* Added API method Item::getNamespaceBindings().
+ * Fixed bug #917981 (disallow declaring same module twice).
version 2.1
=== modified file 'cmake_modules/ZorbaModule.cmake'
--- cmake_modules/ZorbaModule.cmake 2011-12-21 14:40:33 +0000
+++ cmake_modules/ZorbaModule.cmake 2012-01-18 02:19:25 +0000
@@ -159,41 +159,51 @@
MATH (EXPR num_zorba_modules "${num_zorba_modules} + 1")
SET_PROPERTY (GLOBAL PROPERTY ZORBA_MODULE_COUNT ${num_zorba_modules})
- # Compute the version numbers, if any provided.
- IF (MODULE_VERSION)
- STRING (REPLACE "." ";" version "${MODULE_VERSION}")
- LIST (LENGTH version version_len)
- IF (NOT (version_len EQUAL 2) OR (version_len EQUAL 3))
- MESSAGE (FATAL_ERROR
- "Version ${MODULE_VERSION} not of form 'major.minor[.patch]'")
- ENDIF (NOT (version_len EQUAL 2) OR (version_len EQUAL 3))
- LIST (GET version 0 major_ver)
- LIST (GET version 1 minor_ver)
- IF (version_len EQUAL 3)
- LIST (GET version 2 patch_ver)
- MATH (EXPR version_int
- "${major_ver} * 100000000 + ${minor_ver} * 100000 + ${patch_ver}")
- ELSE (version_len EQUAL 3)
- SET (patch_ver)
- MATH (EXPR version_int "${major_ver} * 100000000 + ${minor_ver} * 100000")
- ENDIF (version_len EQUAL 3)
-
- # We maintain a global CMake property named after the target URI
- # which remembers all versions of this URI which have been
- # declared. If a *lower* version has already been declared, the
- # output file rules will be messed up, so die.
- GET_PROPERTY (target_versions GLOBAL PROPERTY "${uri_sym}-versions")
- FOREACH (known_ver ${target_versions})
- IF (known_ver LESS version_int)
- MESSAGE (FATAL_ERROR
- "The module ${MODULE_URI} has already been declared with a "
- "lower version number than ${MODULE_VERSION}. "
- "Please call DECLARE_ZORBA_MODULE() for higher versions of the same "
- "module first.")
- ENDIF (known_ver LESS version_int)
- ENDFOREACH (known_ver)
- SET_PROPERTY (GLOBAL APPEND PROPERTY "${uri_sym}-versions" ${version_int})
- ENDIF (MODULE_VERSION)
+ # If no version specified, it is effectively treated as 0.0.0.
+ IF (NOT MODULE_VERSION)
+ SET (MODULE_VERSION "0.0.0")
+ ENDIF (NOT MODULE_VERSION)
+
+ # Compute a unique integer, version_int, based on the version
+ # number, so we can more easily compare with other versions later.
+ STRING (REPLACE "." ";" version "${MODULE_VERSION}")
+ LIST (LENGTH version version_len)
+ IF (NOT ( (version_len EQUAL 2) OR (version_len EQUAL 3) ) )
+ MESSAGE (FATAL_ERROR
+ "Version ${version_len} ${MODULE_VERSION} not of form 'major.minor[.patch]'")
+ ENDIF (NOT ( (version_len EQUAL 2) OR (version_len EQUAL 3) ) )
+ LIST (GET version 0 major_ver)
+ LIST (GET version 1 minor_ver)
+ IF (version_len EQUAL 3)
+ LIST (GET version 2 patch_ver)
+ MATH (EXPR version_int
+ "${major_ver} * 100000000 + ${minor_ver} * 100000 + ${patch_ver}")
+ ELSE (version_len EQUAL 3)
+ SET (patch_ver)
+ MATH (EXPR version_int "${major_ver} * 100000000 + ${minor_ver} * 100000")
+ ENDIF (version_len EQUAL 3)
+
+ # We maintain a global CMake property named after the target URI
+ # which remembers all versions of this URI which have been
+ # declared. If a *lower* version has already been declared, the
+ # output file rules will be messed up, so die. If the *same* version
+ # has already been declare, XQdoc will be messed up, so die.
+ GET_PROPERTY (target_versions GLOBAL PROPERTY "${uri_sym}-versions")
+ FOREACH (known_ver ${target_versions})
+ IF (known_ver LESS version_int)
+ MESSAGE (FATAL_ERROR
+ "The module ${MODULE_URI} has already been declared with a "
+ "lower version number than ${MODULE_VERSION}. "
+ "Please call DECLARE_ZORBA_MODULE() for higher versions of the same "
+ "module first.")
+ ElSEIF (known_ver EQUAL version_int)
+ MESSAGE (FATAL_ERROR
+ "The module ${MODULE_URI} has already been declared with the "
+ "version number ${MODULE_VERSION}. You cannot declare the same "
+ "module twice.")
+ ENDIF (known_ver LESS version_int)
+ ENDFOREACH (known_ver)
+ SET_PROPERTY (GLOBAL APPEND PROPERTY "${uri_sym}-versions" ${version_int})
# Add to module manifest (except test modules).
IF (NOT MODULE_TEST_ONLY)
=== modified file 'doc/zorba/modules_authoring_2.dox'
--- doc/zorba/modules_authoring_2.dox 2011-11-04 11:31:13 +0000
+++ doc/zorba/modules_authoring_2.dox 2012-01-18 02:19:25 +0000
@@ -118,6 +118,9 @@
correspond with the namespace URI. You may use different filenames for
supporting different versions if you wish.)
+Finally, note that if you declare a module <i>without</i> a VERSION
+argument, it will internally be treated as though the version was "0.0.0".
+
\section mod_author_schemas Adding schemas
If you develop modules that make use of your own XML Schemas, then you
Follow ups
-
[Merge] lp:~zorba-coders/zorba/fix-declare-module-bug917981 into lp:zorba
From: noreply, 2012-02-08
-
[Merge] lp:~zorba-coders/zorba/fix-declare-module-bug917981 into lp:zorba
From: Zorba Build Bot, 2012-02-08
-
[Merge] lp:~zorba-coders/zorba/fix-declare-module-bug917981 into lp:zorba
From: Zorba Build Bot, 2012-02-08
-
[Merge] lp:~zorba-coders/zorba/fix-declare-module-bug917981 into lp:zorba
From: Chris Hillery, 2012-02-08
-
[Merge] lp:~zorba-coders/zorba/fix-declare-module-bug917981 into lp:zorba
From: Zorba Build Bot, 2012-02-07
-
Re: [Merge] lp:~zorba-coders/zorba/fix-declare-module-bug917981 into lp:zorba
From: Zorba Build Bot, 2012-02-07
-
[Merge] lp:~zorba-coders/zorba/fix-declare-module-bug917981 into lp:zorba
From: Zorba Build Bot, 2012-02-07
-
[Merge] lp:~zorba-coders/zorba/fix-declare-module-bug917981 into lp:zorba
From: Sorin Marian Nasoi, 2012-02-07
-
Re: [Merge] lp:~zorba-coders/zorba/fix-declare-module-bug917981 into lp:zorba
From: Chris Hillery, 2012-01-18
-
[Merge] lp:~zorba-coders/zorba/fix-declare-module-bug917981 into lp:zorba
From: Zorba Build Bot, 2012-01-18
-
Re: [Merge] lp:~zorba-coders/zorba/fix-declare-module-bug917981 into lp:zorba
From: Zorba Build Bot, 2012-01-18
-
[Merge] lp:~zorba-coders/zorba/fix-declare-module-bug917981 into lp:zorba
From: Zorba Build Bot, 2012-01-18
-
[Merge] lp:~zorba-coders/zorba/fix-declare-module-bug917981 into lp:zorba
From: Sorin Marian Nasoi, 2012-01-18
-
Re: [Merge] lp:~zorba-coders/zorba/fix-declare-module-bug917981 into lp:zorba
From: Sorin Marian Nasoi, 2012-01-18
-
[Merge] lp:~zorba-coders/zorba/fix-declare-module-bug917981 into lp:zorba
From: Zorba Build Bot, 2012-01-18
-
Re: [Merge] lp:~zorba-coders/zorba/fix-declare-module-bug917981 into lp:zorba
From: Zorba Build Bot, 2012-01-18
-
[Merge] lp:~zorba-coders/zorba/fix-declare-module-bug917981 into lp:zorba
From: Zorba Build Bot, 2012-01-18
-
[Merge] lp:~zorba-coders/zorba/fix-declare-module-bug917981 into lp:zorba
From: Chris Hillery, 2012-01-18
-
Re: [Merge] lp:~zorba-coders/zorba/fix-declare-module-bug917981 into lp:zorba
From: Chris Hillery, 2012-01-18