Compare commits

...

326 Commits
5.4 ... v5.7.1

Author SHA1 Message Date
Jani Heikkinen
bf3d2588cc Update submodules on '5.7.1' in qt5
Change-Id: I90aabdc6b865805960d1a1ecc77d95b89533088c
Reviewed-by: Liang Qi <liang.qi@qt.io>
2016-12-01 18:44:17 +00:00
Qt Submodule Update Bot
9817f4a84c Update submodules on '5.7.1' in qt5
Change-Id: I5103ec34b35683e5815752904108ea3d5cf3c03c
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2016-11-18 10:13:30 +00:00
Qt Submodule Update Bot
0150c62f60 Update submodules on '5.7.1' in qt5
Change-Id: I34632fb2c3976d8436e18550e47f83b362e5baf0
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2016-11-13 08:09:58 +00:00
Qt Submodule Update Bot
1a6968113c Update submodules on '5.7.1' in qt5
Change-Id: I5dc802bd3d922a2764a72b66d1a361a162bda538
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2016-11-11 10:51:42 +00:00
Qt Submodule Update Bot
c09f683eda Update submodules on '5.7.1' in qt5
Change-Id: I278c257557262471c28d3c1d464609c557713f3d
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2016-11-10 10:29:50 +00:00
Qt Submodule Update Bot
294ec185e4 Update submodules on '5.7.1' in qt5
Change-Id: Iba924441798e39ff2bd32aedcd1e28278bfe31f2
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2016-11-01 04:09:34 +00:00
Liang Qi
f5fe555ec7 Update submodules on '5.7.1' in qt5
Change-Id: I992beddab9b28126d8fb2f0ca88d50d999074621
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2016-10-13 04:50:26 +00:00
Liang Qi
f8bed24b63 Merge remote-tracking branch 'origin/5.7' into 5.7.1
Change-Id: I354a221526e9b4d1f2d3b3a4d23fa560fa72fef9
2016-10-12 10:43:23 +02:00
Qt Submodule Update Bot
f2fc36b021 Update submodules on '5.7' in qt5
Change-Id: Ib91dfec2ce8b7e794a26367f658581672d5cc2e2
Reviewed-by: Liang Qi <liang.qi@qt.io>
2016-10-10 05:44:06 +00:00
Qt Submodule Update Bot
0750f2b6ce Update submodules on '5.7' in qt5
Change-Id: I0fcbfa1705b1c2a93f5ced9a07d300e18ae9b7b3
Reviewed-by: Liang Qi <liang.qi@qt.io>
2016-10-07 21:17:31 +00:00
Oswald Buddenhagen
4857e0313f fix qtbase branch
something went wrong while branching.

note that qtwebkit{,-examples} and qtquick1 were omitted intentionally,
as they are not considered worth branching at this point.

Change-Id: I5fb883b2d0ee017373c27688580c496c27d6ebc4
2016-10-07 11:19:08 +02:00
Konstantin Tokarev
5b0a9d688b Log arguments passed to Start-Process in Run-Conan-Install
Task-number: QTQAINFRA-998
Change-Id: Ic27762a0403132cb8c2dcdb9f5a83ae9292e2d2a
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2016-10-05 21:25:43 +00:00
Konstantin Tokarev
cf257c2869 Pass compiler.runtime setting to conan
When MSVC is not autodected, necessary setting compiler.runtime has
undefined value, breaking installation of packages. This setting is not
supported by MinGW, so it should be optional.

Task-number: QTQAINFRA-998
Change-Id: Ia1a09eee14275314c160c7c45cd6ab276367dcdb
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2016-10-05 21:25:35 +00:00
Konstantin Tokarev
433f6dddb5 Execute Conan installer synchronously
PowerShell runs .exe's asynchronously by default, unlike all other commands.
This behavior creates race condition when conanfile processing starts before
conan installation is completed. Addition of "| Out-Null" to installer
invocation makes it synchronous.

Task-number: QTQAINFRA-998
Change-Id: Ic423514f15886e6ad9eb5c9422dd5382a3362380
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2016-10-05 21:25:28 +00:00
Liang Qi
e5627e6de3 Update submodules on '5.7' in qt5
Change-Id: Ifb5d6145b2c4b4bf881cf6414d2b5c76382c8757
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2016-10-05 14:38:22 +00:00
Liang Qi
eb78767825 Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
	coin/provisioning/common/helpers.ps1

Change-Id: I9bf6180f7d2ee1ff1c7722eed3c21d416ba7410e
2016-10-04 11:10:59 +02:00
Qt Submodule Update Bot
bc65857c58 Update submodules on '5.7' in qt5
Change-Id: Icb268cea1648c3219be1bb2ac8d9819971e9a033
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-10-02 20:52:35 +00:00
Konstantin Tokarev
680c596ca0 Revert "Changed slash direction in CI_CONAN_BUILDINFO_DIR"
This actually breaks conan integration in Coin instead of fixing it.

This reverts commit b0b0c9c471.

Change-Id: Ifbdc9dbfd89d5b670221463e6d303691ad45936d
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2016-10-01 06:35:46 +00:00
Liang Qi
792f91dc87 Merge remote-tracking branch 'origin/5.6.2' into 5.6
Conflicts:
	.gitmodules

Change-Id: Ifffec3df90687a6ad84547bb0f603b0446bf0e9d
2016-09-30 14:36:23 +02:00
Heikki Halmet
c9d71e9eeb Python to provisioning for Windows
Installs Python version 2.7.10.
Python is required for building Qt 5 from source. More
specifically qtdeclarative and qtwebkit require it.

Change-Id: I63c8f3294a8a4799df5e52fbd41a36db8686950e
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2016-09-30 08:31:18 +00:00
Konstantin Tokarev
77eeee64a4 Upgrade CMake to 3.6.2
QtWebKit requires CMake >= 2.8.12, while only 2.8.11 is available on
Windows 10 machines.

Task-number: QTQAINFRA-996
Change-Id: I734be4cc36f64dd5aeb243b0fbe4395c75c523b3
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2016-09-30 07:20:41 +00:00
Simon Hausmann
6fabd34960 Merge remote-tracking branch 'origin/5.6' into 5.7
Change-Id: Ibf285f0d67fc5125c1c7da6dfc5b62b834d34867
2016-09-28 16:41:56 +02:00
Qt Submodule Update Bot
657cab9312 Update submodules on '5.7' in qt5
Change-Id: Id084a6f6a3ce4109beb1f36088afe2914ffa7735
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-09-28 04:43:38 +00:00
Qt Submodule Update Bot
5ee2290c0c Update submodules on '5.6' in qt5
Change-Id: I76cd6f71dd61e2478b73d39163e7fbe4b8f6afe6
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-09-27 04:59:22 +00:00
Konstantin Tokarev
b0b0c9c471 Changed slash direction in CI_CONAN_BUILDINFO_DIR
Change-Id: I13bea231301f12a3992abc11119fc34543e75ab2
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2016-09-26 13:51:15 +00:00
Qt Submodule Update Bot
c5557d43ee Update submodules on '5.6.2' in qt5
Change-Id: I337a9d4897efe57d3ac09d9981bb2b07f96a9d87
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2016-09-25 14:19:10 +00:00
Qt Submodule Update Bot
ec6d9b53b4 Update submodules on '5.7' in qt5
Change-Id: I10f0169fa184c4f0c297af4b8f8795a711d88e58
Reviewed-by: Liang Qi <liang.qi@qt.io>
2016-09-25 14:00:21 +00:00
Qt Submodule Update Bot
dcc26dafad Update submodules on '5.7' in qt5
Change-Id: I2a5733b235e381990aa51c87af3d69fa2582541f
Reviewed-by: Liang Qi <liang.qi@qt.io>
2016-09-25 09:04:39 +00:00
Qt Submodule Update Bot
233d142e8e Update submodules on '5.6' in qt5
Change-Id: Ifa9a8c1e59cf8e286c4a52b6936720da76f92073
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-09-24 22:00:52 +00:00
Qt Submodule Update Bot
3f7e68f8c0 Update submodules on '5.6' in qt5
Change-Id: I66d3689ab56b1b8b1c754ced12456ff7e86052f7
Reviewed-by: Liang Qi <liang.qi@qt.io>
2016-09-24 04:30:02 +00:00
Qt Submodule Update Bot
0ad453a0fd Update submodules on '5.6.2' in qt5
Change-Id: I47372eb19e0f038e1ec1999a183125ed1c5300c7
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2016-09-23 09:12:36 +00:00
Qt Submodule Update Bot
7c6a3f423a Update submodules on '5.7' in qt5
Change-Id: I0471e3be4be3b6109fe2afab79ba26915eede933
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-09-23 08:23:40 +00:00
Liang Qi
891afe7066 Update submodules on '5.7' in qt5
Change-Id: Ibdccfa62d894d5e2b3a72bf09d72b4c9c7ff1981
Reviewed-by: Liang Qi <liang.qi@qt.io>
2016-09-20 20:47:42 +00:00
Frederik Gladhorn
1282fa3662 Adjust submodule branches
Change-Id: Id1e4d1d7ac63b12ba0a97d7dc6982a44a48a4ca5
2016-09-20 23:04:26 +03:00
Qt Submodule Update Bot
6a8a0abf9e Update submodules on '5.6' in qt5
Change-Id: Id7fba5c79f44c2081ed49ce8f7050b8eacfb76ef
Reviewed-by: Liang Qi <liang.qi@qt.io>
2016-09-18 09:07:30 +00:00
Konstantin Tokarev
23d1112839 Fixed value of CI_CONAN_BUILDINFO_DIR variable when provisioning Windows
Change-Id: I841783122edf82739826cc0a7672d8c809870e97
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2016-09-18 05:57:54 +00:00
Konstantin Tokarev
e1bfa77391 Do not use qmake and cmake generator automatically for each conanfile
Keep conanfiles self-contained. "txt" generator is not going to be used
by coin internally, drop it.

Task-number: QTQAINFRA-998
Change-Id: I80ffb7342e07d8ef883bed6de77ac9646479f145
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2016-09-17 11:06:44 +00:00
Konstantin Tokarev
fd6fe04cad Added cmake_installer, imports and explicit library types to conanfiles
Task-number: QTQAINFRA-997
Change-Id: I70b51a47c12928944d9f48be13332fce12296af1
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2016-09-17 11:06:40 +00:00
Konstantin Tokarev
0958cc4cca Changed BuildinfoDir of conan to use Coin-compatible compiler name
Task-number: QTQAINFRA-998
Change-Id: Ica31bf88055cb46eb9b6a0438ba5df461b6c8e5f
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2016-09-17 11:06:35 +00:00
Qt Submodule Update Bot
efc461a174 Update submodules on '5.6.2' in qt5
Change-Id: I623adf43a36ff5cd8de844ae533063523efe2b02
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2016-09-16 18:30:36 +00:00
Konstantin Tokarev
78a764ee65 Install conan dependencies if there is conanfile.txt for module
Change-Id: Ie331331f6383444c4329e7a57cb8a8b25e58bd2f
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2016-09-14 22:31:17 +00:00
Konstantin Tokarev
b6414f7d08 Added conanfiles for qtwebkit
Task-number: QTQAINFRA-997
Change-Id: I7aadf3549affeeeb3130d8fdb9ff15242a36aeb9
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2016-09-14 22:31:11 +00:00
Konstantin Tokarev
99ff42545f Install Conan on Win10
QtWebKit will use Conan to install 3rd party dependencies like ICU.

Task-number: QTQAINFRA-997
Change-Id: I4b9bfeb86b28abfdef52afcf249428c3ec41f32a
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2016-09-14 22:31:01 +00:00
Konstantin Tokarev
90f5a25c66 Update Ruby on Win10
QtWebKit requires newer Ruby than version installed on Windows 10 builders.

Task-number: QTQAINFRA-997
Change-Id: Id4f917a824daaab4aeb1445a3a16906663208b6d
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2016-09-14 22:30:52 +00:00
Qt Submodule Update Bot
8cdb619bce Update submodules on '5.6' in qt5
Change-Id: Id80b5734e19aa6f15d90b11abef9f9c183290292
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-09-13 18:02:05 +00:00
Eskil Abrahamsen Blomfeldt
25b385764e Add Qt Android Extras as dependency for Qt Purchasing
Change-Id: Ia7b9d966777470642e0ee0ad3e9c82496ce93950
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2016-09-13 10:28:43 +00:00
Liang Qi
4477c49291 Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
	coin/provisioning/qtci-linux-RHEL-6.6-x86_64/android_sdk_linux.sh

Change-Id: Ib972234bb644353db6920b2dcbe1fd4775ef1779
2016-09-12 15:09:56 +02:00
Heikki Halmet
f1de674fd9 Android sdk and ndk to provisioning for qt5.6
Install latest Android sdk and ndk.
It also runs update for SDK API level 18, latest SDK- and platform-
tools and build-tools version 23.0.3.
Build-tools version 23.0.3 is the latest usable version
for Red Hat 6. Newer version of build-tools, version 24.x.x,
requires GLIBC_2.14, which is not available in Red Hat 6.

Change-Id: Iddc353674a65e0af7a9036d9296b9c2933fa114f
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2016-09-12 09:47:22 +00:00
Qt Submodule Update Bot
33feec0dc8 Update submodules on '5.7' in qt5
Change-Id: Ic053fa3b81c674e4a63419bdab848e362b2a93a6
Reviewed-by: Liang Qi <liang.qi@qt.io>
2016-09-07 04:20:09 +00:00
Qt Submodule Update Bot
25ee5c337c Update submodules on '5.6' in qt5
Change-Id: I1f0e77afca353b07420ed8da001cfbbaaa738dce
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
Reviewed-by: Liang Qi <liang.qi@qt.io>
2016-09-06 05:13:43 +00:00
Qt Submodule Update Bot
4faee20713 Update submodules on '5.6.2' in qt5
Change-Id: Ie03202844e195a89cb536fde6b3c357929737cf8
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2016-09-05 16:47:08 +00:00
Qt Submodule Update Bot
cb6b46a516 Update submodules on '5.6' in qt5
Change-Id: I34bab96a9ec73aa07e1295250aa85528f306a679
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-09-04 15:16:38 +00:00
Qt Submodule Update Bot
64f62b4b95 Update submodules on '5.7' in qt5
Change-Id: I8309b4fd697efb7b539c84d0c351b25c230a4950
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-09-03 23:30:51 +00:00
Qt Submodule Update Bot
68a5a649ab Update submodules on '5.6' in qt5
Change-Id: I565078e5d2d1d8b6a9111d3f063eaebafe008c6f
Reviewed-by: Liang Qi <liang.qi@qt.io>
2016-09-02 18:06:20 +00:00
Qt Submodule Update Bot
66ffe13b50 Update submodules on '5.6' in qt5
Change-Id: I45ed20f8f12335ac2d7aa315329a25c8fbac94fa
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-08-30 04:00:57 +00:00
Qt Submodule Update Bot
42ed864856 Update submodules on '5.7' in qt5
Change-Id: I726579f7e3e25774dc882c1c9d4780ccf23deaed
Reviewed-by: Liang Qi <liang.qi@qt.io>
2016-08-26 19:04:36 +00:00
Oswald Buddenhagen
9584900b5c Adjust submodule branches
Change-Id: Ibc4de8e8a06cf2391ae33be2d02fc21f4e3ab70f
2016-08-24 11:52:19 +02:00
Qt Submodule Update Bot
2dcb31a181 Update submodules on '5.6' in qt5
Change-Id: I1104beac8bafb324731879efdb752a1cebbb9512
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-08-22 16:37:59 +00:00
Oswald Buddenhagen
6cfd3a2118 fix branches of qtpim and qtsystems
these repos were definitely _not_ branched for 5.7.

Change-Id: Ib31d4e07f2651cfba0a7d31a9db1f1a812061313
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Liang Qi <liang.qi@qt.io>
2016-08-18 04:29:08 +00:00
Qt Submodule Update Bot
af364a39aa Update submodules on '5.7' in qt5
Change-Id: I8b849ebf5685a65206d1c60d1c3f7b85e3e6716d
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-08-18 04:28:57 +00:00
Qt Submodule Update Bot
2556777f36 Update submodules on '5.6' in qt5
Change-Id: I3fbdb4edc4d37a8b25fdaff52853d672c951891d
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-08-16 11:53:15 +00:00
Qt Submodule Update Bot
2ed6386fe3 Update submodules on '5.6' in qt5
Change-Id: I4821c386e318139e13ad228983c43c1b1d978494
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-08-13 10:06:10 +00:00
Qt Submodule Update Bot
40e137cbee Update submodules on '5.7' in qt5
Change-Id: I5494d36a2b93a85acbc5825f5bd73d032a4098a9
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-08-11 23:30:46 +00:00
Qt Submodule Update Bot
b0bfbf3bf0 Update submodules on '5.6' in qt5
Change-Id: I166e0f9a092f7e293d50d7efb12df54bcee5ec13
Reviewed-by: Liang Qi <liang.qi@qt.io>
2016-08-10 12:05:33 +00:00
Qt Submodule Update Bot
5c5e807018 Update submodules on '5.7' in qt5
Change-Id: I0f7724142af344e35897035016b03ce046c8164e
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-08-07 23:30:49 +00:00
Qt Submodule Update Bot
fc1d30a447 Update submodules on '5.7' in qt5
Change-Id: I59475dd0549f9c4c83ad830a76b3b5225aa90eda
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-08-06 23:30:51 +00:00
Qt Submodule Update Bot
acafa69d57 Update submodules on '5.7' in qt5
Change-Id: I92e5272d0d0662bfed36e2fa51d25b729e89a172
Reviewed-by: Liang Qi <liang.qi@qt.io>
2016-08-06 10:01:05 +00:00
Liang Qi
95ff2f4870 Merge remote-tracking branch 'origin/5.6' into 5.7
Change-Id: I1a08537bcd4748ebbb3e5a670e3a099779f33945
2016-08-05 09:04:05 +02:00
Qt Submodule Update Bot
b385314451 Update submodules on '5.7' in qt5
Change-Id: I203ab93ecfa295c0a8051b85855333e5a92030c8
Reviewed-by: Liang Qi <liang.qi@qt.io>
2016-08-05 05:49:36 +00:00
Qt Submodule Update Bot
3fb555a773 Update submodules on '5.6' in qt5
Change-Id: I32152358542e406f773d106abba25ee5609c6469
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-08-04 22:00:58 +00:00
Tony Sarajärvi
19b472f1ff Fix Coin provisioning in RHEL 6 regarding sslclientkey values
There was a bug in RHELs subscription manager that caused yum
not to work by fetching incorrect data into the sslclientkey repository
parameter value.
This provisioning script fetches new data for the repository and thus
fixes yum. Naturally by not having a template where a bad repository
exists, this script would be obsolete. Also, as this needs to be run
before any other scripts using yum, prefixes were added to the scripts.

Change-Id: I5c6ed1d43451d2918f9b6dad22b0106339f36aea
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2016-08-03 10:28:52 +00:00
Qt Submodule Update Bot
67754033cf Update submodules on '5.7' in qt5
Change-Id: I03f7c07e68856947471fe9976ff996b680c9fabf
Reviewed-by: Liang Qi <liang.qi@qt.io>
2016-08-03 01:55:05 +00:00
Qt Submodule Update Bot
6fe0028baa Update submodules on '5.7' in qt5
Change-Id: I65292231de671b660f232f0ccac7aeb4ae700f59
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-08-02 05:34:43 +00:00
Qt Submodule Update Bot
8a8134e878 Update submodules on '5.6' in qt5
Change-Id: Ie6bd9ea82d5e67fee7645dccd9b07ceac5755582
Reviewed-by: Liang Qi <liang.qi@qt.io>
2016-07-30 07:16:36 +00:00
Qt Submodule Update Bot
447361eb68 Updated submodules
Change-Id: Id18ec0d487df664c69aff8a8fe8a2ceff64ab42d
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-07-19 10:42:19 +00:00
Qt Submodule Update Bot
d5e52dbe26 Updated submodules
Change-Id: I4e1ec0bbeccad560b49b39b4280950684209445d
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-07-15 08:17:10 +00:00
Qt Submodule Update Bot
ddae625e19 Updated submodules
Change-Id: If0b6c9e8ddac98085848e44d84ad26e9cc403043
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-07-14 11:17:44 +00:00
Qt Submodule Update Bot
a4280c4f44 Updated submodules
Change-Id: If321cd042d8edc2a0532352d2c994e1c2614c9a0
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-07-12 11:40:31 +00:00
Qt Submodule Update Bot
24961e9f2c Updated submodules
Change-Id: Ia252cef752425c836304bd94fd00de3532b79813
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-07-06 08:53:10 +00:00
Qt Submodule Update Bot
1240baedcc Updated submodules
Change-Id: Idf41e8902a32fd125c7c88c99e052aef7a2a703e
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-07-05 10:46:44 +00:00
Qt Submodule Update Bot
6fbf179f73 Updated submodules
Change-Id: Ia80e4d39f9772e32952685008380cc348f481c6c
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-07-04 22:00:50 +00:00
Qt Submodule Update Bot
e00d0be179 Updated submodules
Change-Id: I5443b0f4d97cfc076e3a642ae78770b38661e983
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-07-04 13:30:37 +00:00
Kai Koehne
8ccf739ae0 README: Update Windows build requirements
Change-Id: I9e29d0728db35f65822aff9d709cd93a6b3b7ab2
Task-number: QTBUG-54084
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2016-07-04 07:39:52 +00:00
Kai Koehne
828c7e9e4e README: Qt 5.7 requires C++11 compliant compiler
Task-number: QTBUG-54084
Change-Id: I127fe637791f05f8310988a4c09fc9584e194f53
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2016-07-04 07:39:50 +00:00
Qt Submodule Update Bot
d445febd14 Updated submodules
Change-Id: I48fca93fd045323752c79abd2710e9307ea85b3a
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-07-01 10:35:37 +00:00
Qt Submodule Update Bot
f7ef3ff7f0 Updated submodules
Change-Id: Ib7650cfe43602d9337ed7892af9a6649a6dd2f6f
Reviewed-by: Liang Qi <liang.qi@qt.io>
2016-07-01 09:31:12 +00:00
Qt Submodule Update Bot
9c2315789d Updated submodules
Change-Id: I23f310f80837c73fee1fff2618e1253c6b80b74b
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-06-30 05:12:12 +00:00
Qt Submodule Update Bot
7b77cbc4df Updated submodules.
Change-Id: I5a2524a408eaf6f808c0e1242583e83bf01b42b0
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-06-29 11:59:46 +00:00
Qt Submodule Update Bot
388494d7ee Updated submodules.
Change-Id: I5a780a47ccfcea17e64eda0ed922ca57079ea0ea
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-06-25 02:39:35 +00:00
Qt Submodule Update Bot
3727ce11ac Updated submodules.
Change-Id: Icb8aad2382e3106db016485d404d7e8afc987399
Reviewed-by: Liang Qi <liang.qi@qt.io>
2016-06-23 20:08:48 +00:00
Qt Submodule Update Bot
fdbccea88a Updated submodules.
Change-Id: I67cbc0f3327aeaf3c84e2eb52432a362f0e7c64a
Reviewed-by: Liang Qi <liang.qi@qt.io>
2016-06-23 12:34:18 +00:00
Qt Submodule Update Bot
e06238e996 Updated submodules.
Change-Id: I5a29cb5e04135debd8e7293594eb540e6acd23dd
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-06-21 14:08:07 +00:00
Liang Qi
e205785b5c Merge remote-tracking branch 'origin/5.6' into 5.7
Change-Id: I2e0204f745b482e4faa210ec7f8b95463267b3ca
2016-06-20 21:35:34 +02:00
Sze Howe Koh
49f1a7f0a6 Expand license scope from "Qt GUI Toolkit" to "Qt Toolkit"
See http://comments.gmane.org/gmane.comp.lib.qt.devel/25771

Change-Id: Iebda5d9a886f4c0f16fe4906cf6dc4c81f2c3c90
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-06-20 16:35:21 +00:00
Qt Submodule Update Bot
0b10bd3657 Updated submodules.
Change-Id: Ia5d6e51574251dbd0e9f9cf3f41aac2de56471c4
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-06-20 16:35:18 +00:00
Qt Submodule Update Bot
02df76bf07 Updated submodules.
Change-Id: I3d25d26bebe88a542f794c29bcda413302432874
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-06-18 15:25:48 +00:00
Qt Submodule Update Bot
6bed56a680 Updated submodules.
Change-Id: I86dfc95bd06101ed826d139fd577ccfa662ad0b7
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-06-17 13:52:32 +00:00
Frederik Gladhorn
0536b1e9e4 Clean up Windows provisioning scripts
The execution policy is set by the CI. The command usually fails as it
is in the scritps right now since it must be run as admin.

Change-Id: Ie31cb7fc15720cc6d76646bf475b3d60a02014d8
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2016-06-16 10:15:18 +00:00
Frederik Gladhorn
8ddc3c1254 Add script to patch QNX SDK headers for Qt atomics
Applies http://www.qnx.com/download/feature.html?programid=27555
to the QNX SDK on our continuous integration machines.

Change-Id: I6d24b5024b3e5981c30bbf9a26a1bb4dfaca4e80
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2016-06-16 08:40:11 +00:00
Qt Submodule Update Bot
b3bc77fc73 Updated submodules.
Change-Id: Ia573d0de926441bc63b4c3871e075eb342e294c9
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-06-16 04:26:54 +00:00
Liang Qi
bbe0a01fde Merge remote-tracking branch 'origin/5.6' into 5.7
Change-Id: I4a97d7f5b12f9f5e082c44dea279e39417ccf1c4
2016-06-14 20:25:20 +02:00
Kai Koehne
9b6d296096 README: Do not take deprecated modules as an example
Task-number: QTBUG-54084
Change-Id: I03c81822a05fb9a3bda975421228b460c2a00fe2
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2016-06-14 16:20:56 +00:00
Kai Koehne
5778d17a68 README: Remove platform specific build requirements
The list is not up to date (e.g. ICU is not required on Windows anymore),
and woefully incomplete. Better just link to the wiki/documentation.

Task-number: QTBUG-54084
Change-Id: I6b22fc1c84d40b892503085cb023a7db25fd19c8
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2016-06-14 16:20:53 +00:00
Qt Submodule Update Bot
70b3b02977 Updated submodules.
Change-Id: I8358eadfea5f3bf8ff8615d3c468201acd58f1b5
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-06-14 16:20:50 +00:00
Qt Submodule Update Bot
451f93e26b Updated submodules.
Change-Id: I5ad7c931f77a167ca4574fd20eb6fe783d95a297
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-06-12 17:43:06 +00:00
Qt Submodule Update Bot
4f64747383 Updated submodules.
Change-Id: If1195243a052f8cd20079345dbc7b2783e7bf459
Reviewed-by: Liang Qi <liang.qi@qt.io>
2016-06-11 07:42:47 +00:00
Liang Qi
e568a942ec Merge remote-tracking branch 'origin/5.7.0' into 5.7
Conflicts:
	.gitmodules

Change-Id: Ibb7ae7927cfd3371bdb77d88df409e6982e43985
2016-06-10 12:32:03 +02:00
Qt Submodule Update Bot
6a4d5e4bc8 Updated submodules.
Change-Id: Ia6457dbccce18d960274b0a1774c3d646dfbc6b9
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2016-06-07 17:59:57 +00:00
Qt Submodule Update Bot
51cf8dcf3b Updated submodules.
Change-Id: Iec9d13ae71c8660baec5ca6cfee57aeee3b33922
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-06-05 11:04:42 +00:00
Qt Submodule Update Bot
801066c40d Updated submodules.
Change-Id: If3be9830f7bdbb5508e3b3a962afcc7402b433b2
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2016-06-03 06:24:37 +00:00
Erik Verbruggen
3529d894ba OSX: Switch crash reporting to server mode.
Meaning: to unattended use, so no crash dialogs will pop up. In a later
change we can suppress QTest from generating stack traces when this
setting is *not* in server mode (meaning: the OS will take care of the
stack traces).

Change-Id: Idee9311f866228cd35ecb07889f1c19424981221
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2016-06-02 14:37:12 +00:00
Jędrzej Nowacki
928c491397 Export CI_JOM_PATH variable on all templates with jom
That is needed to change provisioning way in Coin, as currently it
depends on variables hard-coded in Coin agent.

Change-Id: I0bc5c76717e994824b85a4353a7218db4b648344
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2016-05-30 14:08:24 +00:00
Jędrzej Nowacki
a97874523f Export CI_ICU_PATH variables on all windows templates
That is needed to change provisioning way in Coin, as currently it
depends on variables hard-coded in Coin agent.

Change-Id: I15068bec57dd9d67be05ef753d566b456fb8a2fc
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2016-05-30 14:08:22 +00:00
Jędrzej Nowacki
2be9656332 Coin provisioning: overwrite files while unzipping
Change-Id: I5cf59322f5a34cffe9fe8668755800bccb8cc13a
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2016-05-30 14:08:20 +00:00
Qt Submodule Update Bot
82873b1b1e Updated submodules.
Change-Id: Iec0cece6ec1ca471593c4acd32595b59dc64a651
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-05-30 13:30:27 +00:00
Qt Submodule Update Bot
e96f60a228 Updated submodules.
Change-Id: I5093e1ed41b58628b9a67e3bc8c9ed737c9e5523
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2016-05-30 10:07:21 +00:00
Qt Submodule Update Bot
4e02d96116 Updated submodules.
Change-Id: I89a5dc174641a9e4fc7c99e31794c92575179c49
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2016-05-30 08:13:51 +00:00
Qt Submodule Update Bot
0c66994ae9 Updated submodules.
Change-Id: Ia44a5bc2e6e42cd00524dc82c01d5f59726475f3
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2016-05-28 07:36:05 +00:00
Simon Hausmann
ad474f110f Fix status of qtquick1 and enginio
The right term is "ignore" in order to ignore the module, not "ignored".

Change-Id: Idd4a887834fc98fffb2b9e8385308aa676ba3adf
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-05-26 23:13:14 +00:00
Jani Heikkinen
30f22b8351 Set qtquick and enginio to ignored state
It was agreed at the Qt Contributor Summit 2015 that QtQuick1 will be
removed completely from the packages and not even compiled during
qt5.git integration.

Enginio is also removed from 5.7.0 so ignoring it as well

Change-Id: I80ac88d28f811fbf731e33d4d4353a249ad6d29a
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2016-05-24 11:53:12 +00:00
Ilia Kirianovskii
9443890d60 Fix git_install_hooks for relative gitdir
Previously we expected gitdir to be always absolute. This patch fixes
git_install_hooks in case of relative gitdir.

Change-Id: Ia0883af18229703aaa22c62fd2181ed56d9f2fce
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-05-24 04:39:24 +00:00
Qt Submodule Update Bot
e50f5b9150 Updated submodules.
Change-Id: I9b4f1c3daedf21ab201027d5793aa162710c84af
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-05-21 06:44:36 +00:00
Qt Submodule Update Bot
4ace6667f2 Updated submodules.
Change-Id: I32a473f951d4c00b98263d570ebadbd368fa78ce
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2016-05-18 19:18:50 +00:00
Oswald Buddenhagen
23824d231b Adjust submodule branches
Change-Id: I3457cdb3ec2a645fb542039a62e6d107e1bbb812
2016-05-13 13:28:52 +02:00
Oswald Buddenhagen
777967f97b Merge remote-tracking branch 'origin/5.6' into 5.7
skipped all sha1 updates.

Change-Id: I1f741cf7bea806ab238b4f1b5585bb440dafd4f7
2016-05-13 13:22:16 +02:00
Qt Submodule Update Bot
868e545eb2 Updated submodules.
Change-Id: Iac472068ce186e1e1a0a8a58c7050451171eee37
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-05-11 18:54:26 +00:00
Qt Submodule Update Bot
9812986913 Updated submodules.
Change-Id: I092e0b94eb77397708ab6d196357ec6b3b141326
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-05-11 13:58:19 +00:00
Qt Submodule Update Bot
c07377e739 Updated submodules.
Change-Id: I5ea896b0ec6b9837fda44eb7b7a61aa3c6e42db5
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-05-09 04:09:45 +00:00
Frederik Gladhorn
cef159accd Add script to install freeopcua on Ubuntu 14.04
Change-Id: Ia13362cf9aa17fbc0e85ac61b1f2897101903aaf
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-05-06 10:43:53 +00:00
Oswald Buddenhagen
a1ec8795c6 make it actually possible to specify 'ignore' as a class
another thing the doc claims to be possible - also quite reasonably.

Change-Id: I2220245b10f02a778345b6549e345b2486630ffd
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-05-05 20:02:39 +00:00
Oswald Buddenhagen
c41d854254 make it actually possible to exclude classes
the doc - quite reasonably - claims that it is possible.

Change-Id: I4668b3feafe721f1db4deb65848206d8197962c8
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-05-05 20:02:38 +00:00
Qt Submodule Update Bot
9b9801b7d4 Updated submodules.
Change-Id: I6230a59c886114184d74ad34651f04f0d296ade0
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-05-05 05:40:27 +00:00
Frederik Gladhorn
3afd172a25 Merge remote-tracking branch 'origin/5.6' into 5.7
Change-Id: If598cf5987b52450a43fab93702b717c96b17ad2
2016-04-28 12:25:11 +02:00
Jędrzej Nowacki
3963056f63 Add script that install icu on RHEL 6.6
That is translation from coin-setup golang code to sh script

Change-Id: Ic26d3877e56feb8b7f8e3ccd3405a044fb6afd8e
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2016-04-28 07:54:50 +00:00
Frederik Gladhorn
54f1bfd10c Add script to install jom through powershell
Change-Id: I3f12aa0dd54f99fafdffb53796e54e7b127c3c8c
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2016-04-28 07:54:48 +00:00
Frederik Gladhorn
2aff311423 Add coin provisioning directory
Change-Id: I76c5c5b7a1ca41758964923d3eb5c9e644f468be
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-04-26 15:50:53 +00:00
Qt Submodule Update Bot
d61ac6c2f0 Updated submodules.
Change-Id: I1586fb62199695f918f016ec9437810b0f9515e9
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-04-25 08:15:10 +00:00
Qt Submodule Update Bot
b7c2e9a846 Updated submodules.
Change-Id: Id24e1017eee9828e7d6245f1241f241662cc48ef
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-04-21 05:55:42 +00:00
Iikka Eklund
3df0a5837c Update qtquickcontrols2 status as "addon" for Qt 5.7
qtquickcontrols2 is not in preview state anymore for Qt 5.7.

Change-Id: Ib9d3616e7605beabb9bb9f0b0cb1b79a8d499ebd
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2016-04-21 05:55:37 +00:00
Qt Submodule Update Bot
499c5390b3 Updated submodules.
Change-Id: I72e29c8b66acba249f6a274e6428e00a9804b4dd
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-04-21 04:26:15 +00:00
Dominik Holland
a9752d68ed Added qtdeclarative and qtmultimedia as optional dependencies for qtspeech
Change-Id: I20602133a2156b162e99432f868e4925469c7ff5
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2016-04-13 14:00:38 +00:00
Qt Submodule Update Bot
e23b244494 Updated submodules.
Change-Id: I875e16060956af433e20acff4fbdcfb54d0d9923
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2016-04-13 14:00:35 +00:00
Qt Submodule Update Bot
273e5b82cf Updated submodules.
Change-Id: Idc9529f02cc9a5ad4cd300a745b559fea9c94ed4
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2016-04-11 06:57:46 +00:00
Jani Heikkinen
7251401281 Update 5.7 module status
In Qt 5.7 enginio is obsolete and Qt3D addon, not TP anymore

Change-Id: I019f76162cfcc853b542695245a983f151f1b072
Reviewed-by: Iikka Eklund <iikka.eklund@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
2016-04-11 06:57:42 +00:00
Liang Qi
5758a88e59 Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
	.gitmodules

Change-Id: If63e4f4f7d9a7ddba01d4e621fe6bfbc60838d26
2016-04-05 09:52:18 +02:00
Qt Submodule Update Bot
e80d89059c Updated submodules.
Change-Id: I983429d487f7667c36553d24037639abee660b42
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2016-04-04 13:21:35 +00:00
Qt Submodule Update Bot
a550ad21bf Updated submodules.
Change-Id: I1c0bcd2c582276c04e44e88169807cc7cf5b43c3
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2016-04-04 07:23:53 +00:00
Liang Qi
c80e96bb09 Merge remote-tracking branch 'origin/5.6.0' into 5.6
Conflicts:
	.gitmodules

Change-Id: Ic9c8564006c2722f925700f09ff42da3e912f580
2016-03-31 09:53:10 +02:00
Qt Submodule Update Bot
f05fece2f7 Updated submodules.
Change-Id: I85bb46a7180a32c1808574d0a54c51703d4cee12
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-03-29 10:38:52 +00:00
Qt Submodule Update Bot
d9beab9abd Updated submodules.
Change-Id: Ie0c625f6a48fe8d05150bd12f4d92beb2a359ec7
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-03-29 04:19:17 +00:00
Qt Submodule Update Bot
20dcf55e7d Updated submodules.
Change-Id: I5622046dbc1f8eee0cda929627fb8873d525b02a
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-03-08 18:24:09 +00:00
Iikka Eklund
84a1676ed6 Update .gitmodules for automated release src package creation
Introduce new "deprecated" value for status attribute.

We have two flavors of big source packages we need to produce:

qt-everywhere-* which needs to include:

 - essential
 - addon
 - preview
 - deprecated (e.g. qtscript and qtenginio for Qt5.6 release)

Installer only specific source package:

 - essential
 - addon

 The rest (deprecated, preview, ...) need to be shown as split src
 packages in the installer.

The above leads to the following changes:

qtscript: addon -> deprecated

 Needs to be part of big src packages but excluded from installer
 specific big source package.

qtenginio: obsolete -> deprecated

 We can't exclude this module from qt-everywhere src packages.

qtwayland: preview -> addon

 Needs to be part of installer specific big src package and the
 module status is not preview anymore.

Change-Id: I52e10629bf81860f56ebc4ce9d395e0ca54c4264
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-03-08 17:54:29 +00:00
Qt Submodule Update Bot
5e15831271 Updated submodules.
Change-Id: Id993273e16fbbffd43d958419ab103a857fd1346
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2016-03-04 04:26:10 +00:00
Qt Submodule Update Bot
53b920dc69 Updated submodules.
Change-Id: I94c3646dc3309f71f577c6f41241cb2570d0c598
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2016-03-03 10:05:02 +00:00
Qt Submodule Update Bot
d74af1270a Updated submodules.
Change-Id: I49c2a3948ba6c7e8a12f1077b96ddbde1453f67e
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-03-03 00:11:54 +00:00
BogDan Vatra
534d63e652 QQC2 doesn't depend on QQC1
QQC2 depends on qtgraphicaleffects.

Change-Id: I6cc53d46cf9f4a140dff570801f13556da0d3961
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
2016-02-28 06:41:54 +00:00
Qt Submodule Update Bot
e6076450e1 Updated submodules.
Change-Id: I3459d79f2daa9d681759f0cb7b8c841aeae7179a
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2016-02-27 20:21:00 +00:00
Qt Submodule Update Bot
e785abbec1 Updated submodules.
Change-Id: Id60487a24eb193207d4d8837a91cef1abc19f97f
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-02-25 18:49:52 +00:00
Qt Submodule Update Bot
211080722e Updated submodules.
Change-Id: I633ba6875269578aae2f9d28062d3fa78924a5fc
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-02-24 15:41:25 +00:00
Simon Hausmann
30236c3f15 Merge "Merge remote-tracking branch 'origin/5.6' into 5.7" into refs/staging/5.7 2016-02-24 15:41:16 +00:00
BogDan Vatra
18e84e7c06 Enable QtGamepad usage in Qt3D
If Qt3D finds QtGamepad, it will use it to build gamepad support.

Change-Id: Ifbc40e5e04a6030d25c2d429878d4fb3a3dd11a6
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-02-22 12:40:29 +00:00
Simon Hausmann
d4bb786963 Merge remote-tracking branch 'origin/5.6' into 5.7
Change-Id: I2bc1389ece7f12efc334f0292edbbea837f9adc2
2016-02-19 09:21:52 +01:00
Qt Submodule Update Bot
fb1345171a Updated submodules.
Change-Id: Ife7e51372a57f53efefc1fe0c8c805442908d8d9
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2016-02-19 05:24:28 +00:00
Oswald Buddenhagen
fdf1b3cc8d rework hook installation
the primary purpose of this change is making it work with new-style
submodules (1.7+) and git-worktree (2.5+). this means resolving '.git'
and 'commondir' files.

we avoid calling git commands, because a) it's slow on windows, b) some
of them are unavailable in older git versions and it's tedious to deal
with that and c) their output is not necessarily optimal (not always
absolute paths).

we also don't use relative paths for the hook locations any more, as
that's too tedious to deal with.

Change-Id: Ie341e748e56d6bef40856e4a49ac368850028d83
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-02-17 20:18:48 +00:00
Qt Submodule Update Bot
c2549708e5 Updated submodules.
Change-Id: I020482ae1107cdd56fad485007622cb4b62b8032
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-02-17 20:18:34 +00:00
Qt Submodule Update Bot
6bdec75429 Updated submodules.
Change-Id: I6ad2f0dfbfb78f8f4d9c20f81a84803472a4b31c
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2016-02-16 12:15:51 +00:00
Qt Submodule Update Bot
6efabf6dfe Updated submodules.
Change-Id: I444b4f3ddbb851d94abda55e2e2dfcfee3921d94
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2016-02-15 10:26:46 +00:00
Qt Submodule Update Bot
3fa8726fa7 Updated submodules.
Change-Id: I5861620b6214dc5ff124672ce21dd4dd5b25ce85
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2016-02-15 06:57:00 +00:00
Oswald Buddenhagen
81523d838c Adjust submodule branches
Change-Id: I3484da8952951d818e9f584bf9b57e9bb9b1e430
2016-02-12 17:40:00 +01:00
Qt Submodule Update Bot
7a8c874231 Updated submodules.
Change-Id: I6901259b7a01e57d0c8ca2a9f40d9501635f5cc0
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2016-02-12 11:11:07 +00:00
Simon Hausmann
e52c7efa4c Fix datavis3d dependencies
The qtmultimedia dependency was missing for datavis3d.

Change-Id: I91007c210e58aa9985844a8234781356391bfbad
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2016-02-12 11:11:01 +00:00
Oswald Buddenhagen
c6d04d68bd add qtgamepad, qtscxml, and qtspeech
Change-Id: I14bc475d44367a9102e896976eba5bd191ee232d
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2016-02-12 11:10:57 +00:00
Oswald Buddenhagen
4007fc7a26 Merge remote-tracking branch 'origin/5.6.0' into 5.6
Conflicts:
	.gitmodules

Change-Id: Ic3c425211f24b0dc3a341cac7d9fd9d0b7edac03
2016-02-12 11:18:27 +01:00
Qt Submodule Update Bot
37c75a23e8 Updated submodules.
Change-Id: I8740e98ba27c1f554366a5183c6972207f0b0061
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2016-02-10 23:22:34 +00:00
Oswald Buddenhagen
3cfe8712ae fix branches of some modules
all repos which are released (whichever way) need release branches.
and vice versa.
also, it needs to be the *right* release branch.

Task-number: QTBUG-50695
Change-Id: Id7b5d106d2d9bdf70e9d5276e205a3c7ea827144
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
Reviewed-by: Robert Loehning <robert.loehning@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-02-07 09:10:14 +00:00
Qt Submodule Update Bot
b680c074d1 Updated submodules.
Change-Id: Ic407bd126cc4c0a557ec7769d41394aa68c0cbee
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2016-02-07 09:09:35 +00:00
Oswald Buddenhagen
d1d52b5c1e properly complain about invalid entries in --module-subset
Change-Id: I13ec7a6acdc8a47efea14bfabf0413d8a3570870
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-02-07 09:09:30 +00:00
Oswald Buddenhagen
3de19487d9 replace 'initrepo' with more fine-grained 'status'
instead of a simple bool, we now have five states: preview, active,
addon, obsolete, and ignore (the default). the default includes the
first three.

the CI system is expected to use --module-subset=all,-ignore to include
everything that is expected to build (in some configurations).

Change-Id: Ifb43412054a8e42db0425f24f8e53acfce363caa
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-02-07 09:09:27 +00:00
Miikka Heikkinen
2c53e3d08c Add charts, data visualization and virtual keyboard modules
Change-Id: I53cbc4ce3c2e44687ce454498f5def820614db85
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-01-25 14:41:07 +00:00
Oswald Buddenhagen
f5ba19c3f0 Adjust submodule branches
Change-Id: Id78b6c131063a8d25616282cd3b76815323e8048
2016-01-25 11:38:54 +01:00
Qt Submodule Update Bot
b93073ecc9 Updated submodules.
Change-Id: I790e982492004e93953bed503a1d777d27c28b6f
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-01-23 11:12:30 +00:00
Qt Submodule Update Bot
1fcdb6cafc Updated submodules.
Change-Id: I88b34da37a589451ae32c6f736f4dc863715b339
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-01-22 19:11:52 +00:00
Simon Hausmann
d758a3b055 Merge remote-tracking branch 'origin/5.6' into dev
Change-Id: I62519dfde84c16a7dfe1b6f225e40e6f16d3105c
2016-01-22 10:42:38 +01:00
Qt Submodule Update Bot
273821d69c Updated submodules.
Change-Id: I2c671f50d878e8ed03418c2a59c8c997ed3bd6f4
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-01-22 04:26:30 +00:00
Oswald Buddenhagen
06c3d40cc9 move module dependencies from qt.pro to .gitmodules
this removes the last redundant module list.

the module build order which is not determined by dependencies is pretty
random now. this is avoided for a few heavy and "less relevant" modules
by setting a priority to built them as late as possible.

Change-Id: Ie8ef9777d050a4915cd2282dc9ccb48fcdbc02d2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-01-22 04:26:12 +00:00
Qt Submodule Update Bot
f47e82703c Updated submodules.
Change-Id: Ie0cf0058a5e8f383be4608a5c094b610b9a575af
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-01-19 19:11:07 +00:00
Qt Submodule Update Bot
bb9eebce48 Updated submodules.
Change-Id: Ia4dbb4d02b5c32c76cd9cbdc320709af668dc4bc
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-01-18 19:58:29 +00:00
Qt Submodule Update Bot
0e2ec253d8 Updated submodules.
Change-Id: I3ce0cb4e9ea44dcd860b48d3a6ecaad0eb31964f
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-01-17 17:40:06 +00:00
Qt Submodule Update Bot
63d305bb7d Updated submodules.
Change-Id: Iff91870d954d24d2649334d2eeb8357e483009b3
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2016-01-12 19:50:06 +00:00
Qt Submodule Update Bot
bcebc106f1 Updated submodules.
Change-Id: Ibacf35a5fb113f9b54a96c10d52aa70e2e64f8da
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2016-01-05 12:50:44 +00:00
Oswald Buddenhagen
2e134da46c don't use POD, to restore msysgit perl compatibility
Change-Id: I360a6d5246e33dcf3f72bc83f2790905af8c1463
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-12-25 08:07:16 +00:00
Oswald Buddenhagen
c3e404fffd don't use GetOptionsFromArray, to restore msysgit perl compatibility
Change-Id: Ic02a5d8b5a8a813a23bed1c0b45bcb8ee47e3edb
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-12-25 08:07:10 +00:00
Oswald Buddenhagen
43135d6e33 make qtandroidextras a regular optional dependency of qtconnectivity
we want to move to a purely declarative way to declare submodules, so
the conditional has to go.

instead, use an optional dependency to ensure build order, while the
module excludes itself via requires() if its dependency is missing.

Change-Id: I615382700ff601c9ab003d131b2cc600441c514c
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
2015-12-25 08:07:00 +00:00
Qt Submodule Update Bot
cda5de797b Updated submodules.
Change-Id: Icf4a1303edde9048adcb9bb40ced1b503a170f22
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-12-24 18:06:50 +00:00
Simon Hausmann
d2b26ede9c Updated submodules.
Change-Id: I5d7279982a017ef903991faa89c79ca10e717497
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-12-17 21:01:44 +00:00
Simon Hausmann
90b08b1c6d Updated submodules.
Change-Id: I701ce99cb7eb7fa8daffa67699920f51a7ab2087
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-12-17 06:52:41 +00:00
Liang Qi
2051c2987e Enable qtpurchasing by default
Change-Id: I4030b9f446a865e758492e2f07b8adb19052e91d
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-12-16 20:08:35 +00:00
Simon Hausmann
f8ae5ee3b6 Updated submodules.
Change-Id: I806a9fb4b31adf8c02e00c2320d53f7d7fe3669e
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-12-16 09:49:14 +00:00
Liang Qi
c485f3e4a7 Manually update qtpurchasing
Change-Id: I7385116d7c6e9a7f9b7b2be4b76468b8459299dd
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-12-16 09:38:11 +00:00
Liang Qi
7b30d85bdc Merge remote-tracking branch 'origin/5.6' into dev
Change-Id: Ibd5caf0448c9eba9251bc9395fe647f1955743f0
2015-12-15 19:05:02 +01:00
Liang Qi
e4ff528bb6 Updated submodules.
Change-Id: I54527e1c5ad138ac63d38d8eabcf158d11b0286d
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
2015-12-15 12:13:58 +00:00
Simon Hausmann
a93760f957 Updated submodules.
Change-Id: Iba5d9c28367748258013888c93ab773eb05bb0ee
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-12-15 07:35:22 +00:00
Simon Hausmann
d678e02936 Updated submodules.
Change-Id: Ia00cca2d8c22ff96a4f871d70eaa9eb55f6391b0
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-12-10 05:05:50 +00:00
Antti Kokko
1c04b1f7bd Updated submodules.
Change-Id: Ic83700e48f40b0ee8e76f4b4e44b28b4c85bebb7
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-12-08 04:54:41 +00:00
Oswald Buddenhagen
2a46300588 error-check dependency declarations
Change-Id: I98ad68d8be608b144c5f2ff422aaf7baab9907e8
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2015-12-01 14:00:46 +00:00
Antti Kokko
d527415ac6 Updated submodules.
Change-Id: Id124a31338548d9a76baa908b281b3bb6ede168a
Reviewed-by: Iikka Eklund <iikka.eklund@theqtcompany.com>
2015-12-01 14:00:43 +00:00
Frederik Gladhorn
f128a9a7e1 Updated submodules.
Change-Id: Id3463e24f1aecc6e2d4d040bc7878ad1d48f6327
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-11-16 05:29:51 +00:00
Oswald Buddenhagen
83b45e9030 declare mandatory dep serialbus => serialport
Change-Id: I35c5f18b7c8856071413e50590308f402be7e528
Reviewed-by: Rolf Eike Beer <eb@emlix.com>
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
2015-11-13 09:22:22 +00:00
Jędrzej Nowacki
1197dbb1db Updated submodules.
Change-Id: I8e348f3cab39f75acb68b2bdc388cd37927424bb
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-11-12 19:05:33 +00:00
Frederik Gladhorn
d55a9e3a66 Updated submodules.
Change-Id: I0793599392d2e64ceabe8d0f24ba7cb0abc76b84
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2015-11-07 14:00:12 +00:00
Jani Heikkinen
4aabf3e19d Updated submodules.
Change-Id: I4f71eed2d556219480490f433323db4c151b4ba7
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-10-31 09:29:59 +00:00
Fredrik Orderud
ddcc9b234e Update Qt3d manually
Fixes a crash at destruction.

Change-Id: Ie773b3def96cc1e55baa36b9ff7cf697770d479e
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2015-10-28 20:25:26 +00:00
Simon Hausmann
95a89a8b5a Manual update of qtmultimedia
In order to bring in the missing libs for QTBUG-48914

Change-Id: I678dcd1ca5bdae66efdd09b809ff63c7da37d58a
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-10-27 12:15:41 +00:00
Fredrik Orderud
98717e27d0 Update Qt3d manually
Fixes some nasty threading problems related to pick event race
conditions and QThreadPool thread recycling.

Change-Id: I977ad310d1a767abc0fbcca49f9088ff5fdda708
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-10-26 18:22:04 +00:00
Simon Hausmann
5197447fd0 Update WebEngine manually
This brings in MSVC 2015 fixes and RHEL/OpenSuSE build fixes

Change-Id: I796c153a005e964c4a32203cfe08cbf3ece5f39e
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-10-23 18:46:03 +00:00
Laszlo Agocs
a0309a7a43 Fix dependency order for qtlocation and qtwebview
Change-Id: Ie61b69be3b38975675fff3553d1f5c9510e7865e
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-10-22 05:00:55 +00:00
Simon Hausmann
17c6369c9e Updated submodules.
Change-Id: I3094692e61e5a41116d69053d1f296eac46e545b
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-10-22 05:00:52 +00:00
Jani Heikkinen
6f0713adf6 Updated submodules.
Change-Id: Ifc06de16a694d8d24bdea3a81e796a0c460e1864
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-10-12 10:43:55 +00:00
Oswald Buddenhagen
0c4ec778f5 declare qtgraphicaleffects before qtquickcontrols
otherwise the dependency is botched.

amends 30e19df5b.

Change-Id: I8e17d2f91c7c55c49be6239268f928ae4577d17c
Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
2015-10-12 05:25:39 +00:00
Iikka Eklund
6382845a6d Update build instructions for commercial licensees
Add build instructions for commercial licensees as well so that the
same README covers both opensource and enterprise users.

This removes the need having separate README file for commercial users.

Change-Id: Ibd3012b428c6fa85f47c1c459d8029ebfce92046
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-10-12 05:25:20 +00:00
Edward Welbourne
383b2585e3 Explain what the canonical URLs are.
This caught me out the first time I tried to use init-repository.
Documentation should work for noobs.

Change-Id: Ia6c9ce395ace034128bfe80f2c31be7f9cd4cf35
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-10-12 05:24:50 +00:00
Laszlo Agocs
ee443af314 Add qtserialport as dependency for qtlocation
Task-number: QTBUG-48082
Change-Id: I7b90777bfdd1286f6340caf756562146772d0bb3
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
2015-10-09 12:05:04 +00:00
Jani Heikkinen
d16a8656f9 Updated submodules.
Change-Id: I871b519649bb6130db128d7ae4c0916ee2e48146
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-10-06 17:21:56 +00:00
Simon Hausmann
c78fc65631 Updated submodules.
Change-Id: Ia0a52a43a8c5fa7516c1469241a449c457153040
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-09-26 11:22:38 +00:00
Simon Hausmann
ae1dc7aa3e Updated submodules.
Change-Id: Ic5ea73d6ca0ea2e174cd592226a16885a73aeed1
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-09-25 19:35:21 +00:00
Thiago Macieira
942ae1dd82 Add a way to build just a few of Qt's modules more easily
The current way requires passing -skip to configure, which is a list
of what not to build. To set a list of what to build (e.g., for
testing, in a specialized build, etc.), there was no way. Now you can
just do:

    qmake "QT_BUILD_MODULES=qtbase qtdeclarative qtsvg qtxmlpatterns"

(the order doesn't matter)

Change-Id: Ifcaefa35b16b137866ca839a483ce366e35de7ab
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-09-24 05:22:45 +00:00
Frederik Gladhorn
d7f477d1cd Add qtpurchasing as non-default module
For 5.6 this is a tech preview, it will be added properly in 5.7.

Change-Id: I709830fbcfc439d5446718093f0c16ad2dcb1e57
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2015-09-24 05:22:42 +00:00
Simon Hausmann
c42dd3462b Updated submodules.
Change-Id: If0045fccac1af79e858831c75c7808fe6997e37e
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2015-09-22 16:40:33 +00:00
Qt Submodule Update Bot
a2a6cf11a7 Updated submodules.
Change-Id: I1d3966833b5f27fb262f2d3727557ef2c8947828
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
2015-09-21 18:02:48 +00:00
Jani Heikkinen
944aa6bcbb Updated submodules.
Change-Id: I3c4cdbef3f8fbc016757fdd6a4b5bb8eb6a644df
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-09-21 13:24:01 +00:00
Oswald Buddenhagen
2068af50ca Merge remote-tracking branch 'origin/5.6' into dev
Conflicts:
	.gitmodules
	qtquickcontrols2
	qtwebview

Change-Id: Ic5b78f36511d5e022aacd6ade5d052345bc84d14
2015-09-18 12:00:07 +02:00
Simon Hausmann
a89c6ef703 Manual update of qttools to remove webkit dependency
Change-Id: I6cf6ae75cedb0945c46fd9b3fa63bd21a9ce4806
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-09-18 06:33:36 +00:00
Simon Hausmann
2ebfdb4ca8 Updated submodules.
Change-Id: I03bbaedeb88ad76df39ce10f6828ebf5c8b8dadf
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-09-17 11:37:09 +00:00
Oswald Buddenhagen
9bde440225 Merge remote-tracking branch 'origin/5.5' into 5.6
Change-Id: I7a28bcaeb5538763274fdef20f8c8ca81b9b21ad
2015-09-10 14:24:15 +02:00
Qt Submodule Update Bot
dd1aeea722 Updated submodules.
Change-Id: I0ba6e6ce435be779865b0ace08d74dd29800be9c
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-09-04 04:24:15 +00:00
Frederik Gladhorn
e734941df8 Add QtQuickControls2 as submodule
Change-Id: I435fb765b48a978763384226e399b33448a40502
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2015-09-03 22:45:29 +00:00
Alex Blasche
c5cb9d2d89 Hook qtserialbus into qt5.git
Change-Id: I17c8c55205f852b3e79f279cad7b87f403d7fbe7
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-09-03 17:40:25 +00:00
Frederik Gladhorn
4c520caa69 Add qtwebview as submodule
Change-Id: I6a69b08945767f4cb8f4164630c726cf8bf552bb
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2015-09-03 17:40:17 +00:00
Jani Heikkinen
4116ec2474 Removed QtWebkit and QtWebkit-Examples from qt5.git
QtWebkit (and QtWebkit-Examples) were deprecated in Qt 5.5 and will now
be removed from qt5.git in Qt5.6 release

Change-Id: I86e1072141956136fa5e4220cdcdf812492453b3
Reviewed-by: Tuukka Turunen <tuukka.turunen@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-09-03 17:40:10 +00:00
Simon Hausmann
3e1fd2cb31 Fix QtEnginio branch
The 1.3 branch does not exist anymore, let's use 5.6

Change-Id: I442ad45c73a0e08c853385c999dddf818447bb82
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-09-03 17:40:03 +00:00
Simon Hausmann
1a46c456eb Updated submodules.
Change-Id: Ie8c296b8e64fe0083ab5ec1584a42c7165fbe3ab
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-09-03 17:39:54 +00:00
Andrew Knight
7bbe464617 gnuwin32: remove win_bison/win_flex
These tools are copies of bison/flex and are no longer needed.

Change-Id: Ia543926ee8126358beee2aed03752d9cfe803f07
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-09-01 05:56:07 +00:00
Qt Submodule Update Bot
0ba6e6ce43 Updated submodules.
Change-Id: I1497a398e34e18abb18f705b2294464840629ca1
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-09-01 05:56:00 +00:00
Jani Heikkinen
812ff69df4 Remove quick1 from default checkout
QtQuick1 was deprecated in Qt 5.5 and will now be removed from
default modules in qt5.git

Change-Id: I88aa9d75ace8d91b4cd469d7511662425e67d95f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-08-27 19:44:22 +00:00
Qt Submodule Update Bot
1497a398e3 Updated submodules.
Change-Id: I56e7af096e889d56ef67baabf38529c0ccb8d8b5
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-08-25 04:33:00 +00:00
Liang Qi
c9425926e1 Merge remote-tracking branch 'origin/5.5' into 5.6
Conflicts:
	qt3d
	qtactiveqt
	qtandroidextras
	qtbase
	qtcanvas3d
	qtconnectivity
	qtdeclarative
	qtdoc
	qtenginio
	qtgraphicaleffects
	qtimageformats
	qtlocation
	qtmacextras
	qtmultimedia
	qtqa
	qtquick1
	qtquickcontrols
	qtrepotools
	qtscript
	qtsensors
	qtserialport
	qtsvg
	qttools
	qttranslations
	qtwayland
	qtwebchannel
	qtwebengine
	qtwebkit
	qtwebkit-examples
	qtwebsockets
	qtwinextras
	qtx11extras
	qtxmlpatterns

Change-Id: I7410d9be5775ab276fb5a57adb397f4f92d77a50
2015-08-24 16:18:23 +02:00
Qt Submodule Update Bot
56e7af096e Updated submodules.
Change-Id: Icf1e00c471aea0ce5228165735195a9f0f76fe36
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
2015-08-21 09:43:42 +00:00
Qt Submodule Update Bot
cf1e00c471 Updated submodules.
Change-Id: Id60882b0bc98875361477cb5aaf7d12c2693f900
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-08-18 04:24:52 +00:00
Thiago Macieira
d7b8b62cb3 Add the GPLv3 license text
LGPLv3 refers to it but does not include it in its body.

Change-Id: Ib056b47dde3341ef9a52ffff13eed18cf3504738
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-08-14 13:39:09 +02:00
Oswald Buddenhagen
bf5c38f136 Merge remote-tracking branch 'origin/5.4' into 5.5
Change-Id: I5b894e7f72ad81e62a6ea0777e6713dfa36c8a68
2015-08-14 13:38:53 +02:00
Mitch Curtis
30e19df5bf Add qtgraphicaleffects as an optional dependency for qtquickcontrols.
This is a prerequisite to making qtgraphicaleffects a dependency in
qtquickcontrols' sync.profile.

Task-number: QTBUG-46393
Change-Id: I3679392a7feb48ecefa4a01a7ecb42b2e6287ecb
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-08-13 11:52:55 +00:00
Andrew Knight
3d7fe3b822 gnuwin32: Remove old versions of bison/flex from the distribution
The win_flex/win_bison tools are already in the repository and working
with all projects, so the GnuWin32 versions can be removed and the
winflexbison versions can take their place.

Task-number: QTBUG-46852
Change-Id: I41bc541adab834ff83912d7a4f076a87fc174601
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2015-08-13 04:45:21 +00:00
Qt Submodule Update Bot
d60882b0bc Updated submodules.
Change-Id: Idbdb4ce40f9456898ac9148dc08473f636f34f1d
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-08-13 04:45:15 +00:00
Oswald Buddenhagen
f587983764 fix qtcanvas3d submodule reference
Change-Id: I67d89f5e8d04a1e60ff0aedc33e29da7a58df620
2015-08-12 16:31:03 +02:00
Oswald Buddenhagen
cab251cd8d Adjust submodule branches
Change-Id: I7755bb88167297aef9defaa6b66639fde6e9804d
2015-08-10 16:53:39 +02:00
Qt Submodule Update Bot
dbdb4ce40f Updated submodules.
Change-Id: I20beccb62815f3c6948d888ccfad0b69c42b55e0
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-08-07 06:55:47 +00:00
Qt Submodule Update Bot
20beccb628 Updated submodules.
Change-Id: Ie77fe47fcec71a13d3640059d1e0ce66a47fc0b2
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
2015-07-14 03:17:43 +00:00
Qt Submodule Update Bot
e77fe47fce Updated submodules.
Change-Id: I22c7d89fd93a256c4051f49b9a9b89789e697df6
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
2015-07-11 09:46:26 +00:00
Qt Submodule Update Bot
1d3966833b Updated submodules.
Change-Id: Idc11a328839163ffae5e72f2e43860b12f19c668
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
2015-07-11 03:32:32 +00:00
Qt Submodule Update Bot
22c7d89fd9 Updated submodules.
Change-Id: Ideafacc193da59a1db25e006b16630b74535cbee
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
2015-06-30 18:19:55 +00:00
Kai Koehne
345e4356b7 README: Replace qt-project.org with qt.io
Change-Id: Iacc4dc8f28ce2c0bb1d761834d0f90b444f47327
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-06-30 18:19:33 +00:00
Qt Submodule Update Bot
deafacc193 Updated submodules.
Change-Id: Ibc862a8b12e46042819341229b31883bc9a1462e
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
2015-06-29 19:59:42 +00:00
Aaron McCarthy
fb5e3cc2d3 Add qtquickcontrols as an optional dependency to qtlocation module
With the correct modules checked out 'make module-qtlocation' will build
everything necessary to run the examples.

Change-Id: I0c63221b5704c2b13495f3dc3221e888d8e9547c
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
2015-06-26 06:46:09 +00:00
Qt Submodule Update Bot
bc862a8b12 Updated submodules.
Change-Id: Ie231e8be72006172dd80ec9f1df8f57e7fc54891
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
2015-06-26 05:37:28 +00:00
Qt Submodule Update Bot
dc11a32883 Updated submodules.
Change-Id: Ic5910fb0b28553d1eb0815e578381fd358e342fc
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
2015-06-25 19:31:21 +00:00
Qt Submodule Update Bot
e231e8be72 Updated submodules.
Change-Id: Icc425a6784ea3ae379716ddb1e79a8a07ccd8d74
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
2015-06-25 19:31:02 +00:00
Qt Submodule Update Bot
cc425a6784 Updated submodules.
Change-Id: I88f32b10ee95f967686bf9c3295887b4ebb62eba
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
2015-06-24 07:00:47 +00:00
Qt Submodule Update Bot
c5910fb0b2 Updated submodules.
Change-Id: Ic5e879665945d79c0fcdb27c2c00978b7abdeef6
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
2015-06-23 19:28:08 +00:00
Qt Submodule Update Bot
c5e8796659 Updated submodules.
Change-Id: I5c321f6626e9bf6f64f2c120e8281547e2561880
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
2015-06-21 11:31:31 +00:00
Qt Submodule Update Bot
5c321f6626 Updated submodules.
Change-Id: I3009287ec75bfa7b3084fad32a75552656845434
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
2015-06-20 17:13:47 +00:00
Qt Submodule Update Bot
88f32b10ee Updated submodules.
Change-Id: Ibc644efc00d00f43c1d202106bae6facf015c7fb
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
2015-06-20 06:59:07 +00:00
Qt Submodule Update Bot
3009287ec7 Updated submodules.
Change-Id: I7257e86c7381f5237c2c135a4395e88b65735cd3
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-06-18 04:43:56 +00:00
Qt Submodule Update Bot
bc644efc00 Updated submodules.
Change-Id: Ia820c1611af25853deb8161041adf39b7bfa61db
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
2015-06-17 12:04:07 +00:00
Qt Submodule Update Bot
7257e86c73 Updated submodules.
Change-Id: I976ffd988e7ec7b595ed610d86bf58307c5e5434
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-06-09 04:27:26 +00:00
Qt Submodule Update Bot
a820c1611a Updated submodules.
Change-Id: I5384ff79efab1a68cfb665f1e764d7f5ee73fcba
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
2015-06-07 05:40:06 +00:00
Michael Olbrich
935ffc2e5f qtdeclarative is an optional dependency for qtwebkit
This way qtwebkit can be built when qtdeclarative is disabled. This is
especially useful for targets without OpenGL.

Also add qtxmlpatterns to the optional dependencies. It was an indirect
dependency before via qtdeclarative.

Change-Id: Ib4c29b958bd63d528fba8ec326e2dbc1ea8bce08
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
2015-06-05 19:05:46 +00:00
Qt Submodule Update Bot
5384ff79ef Updated submodules.
Change-Id: I4fc367abe95ee78166067047d0f229bba9991956
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
2015-06-04 20:03:11 +00:00
Qt Submodule Update Bot
4fc367abe9 Updated submodules.
Change-Id: I88af8ac70704e63a2154b3fe22b51483a69d84c3
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
2015-05-31 06:59:17 +00:00
Qt Submodule Update Bot
88af8ac707 Updated submodules.
Change-Id: I57641bf25f49f0f8eb55ccb08a4ede2d6a7af499
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-05-29 19:19:51 +00:00
Andrew Knight
ea14bacdc8 Set win_bison/win_flex executable
This fixes failed execution when the Qt sources are exported to
Windows over a network share or attempted to be executed on a Linux
system using binfmt.

Change-Id: I00b1073e516d2441498a39cc13e4295484e1ef9d
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-05-27 16:13:29 +00:00
Qt Submodule Update Bot
57641bf25f Updated submodules.
Change-Id: I31ee12ede4defe80e20dd49b9ca7b425b6758965
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-05-27 16:13:26 +00:00
Qt Submodule Update Bot
31ee12ede4 Updated submodules.
Change-Id: I833cf03a1efe7ef6fa8f11020826063804ebddaa
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-05-19 09:48:15 +00:00
Qt Submodule Update Bot
833cf03a1e Updated submodules.
Change-Id: I619984c9c8d142c465bb86a571d101ac564676d2
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-05-15 10:34:29 +00:00
Qt Submodule Update Bot
619984c9c8 Updated submodules.
Change-Id: I56a80384b1c5fef07b53d41bcc8567177f6f43db
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-05-09 16:06:13 +00:00
Qt Submodule Update Bot
56a80384b1 Updated submodules.
Change-Id: I359f9925da5f735a654ab18efbc68305f5dadfd2
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-05-07 05:58:41 +00:00
Qt Submodule Update Bot
359f9925da Updated submodules.
Change-Id: Ic38d3b26e9a53fb6b0671ebfdbd05f6a925fe668
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-05-03 07:57:46 +00:00
Qt Submodule Update Bot
c38d3b26e9 Updated submodules.
Change-Id: I0d362ee5568abc3943a83b10ae8b6444103ff8c3
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-04-29 17:37:59 +00:00
Qt Submodule Update Bot
0d362ee556 Updated submodules.
Change-Id: I976ffd988e7ec7b595ed610d86bf58307c5e5434
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-04-28 04:35:07 +00:00
Frederik Gladhorn
9edcb24889 Merge remote-tracking branch 'origin/5.5' into dev
Conflicts:
	qt3d
	qtactiveqt
	qtandroidextras
	qtbase
	qtcanvas3d
	qtconnectivity
	qtdeclarative
	qtdoc
	qtenginio
	qtimageformats
	qtlocation
	qtmacextras
	qtmultimedia
	qtqa
	qtquick1
	qtquickcontrols
	qtrepotools
	qtscript
	qtsensors
	qtserialport
	qtsvg
	qttools
	qttranslations
	qtwayland
	qtwebengine
	qtwebkit
	qtwebkit-examples
	qtwebsockets
	qtwinextras
	qtxmlpatterns

Change-Id: I691dbbe6d3399d601336bb7e309579fb89d6381c
2015-04-21 16:26:04 +02:00
Qt Submodule Update Bot
976ffd988e Updated submodules.
Change-Id: I1d66817cbc1f67e7fd8e2d3f92ec39af344a2f43
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-04-14 04:20:21 +00:00
Qt Submodule Update Bot
1d66817cbc Updated submodules.
Change-Id: I95930e98758f357598c5aaa8fce39ca7f3f549a4
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-04-09 04:45:52 +00:00
Qt Submodule Update Bot
95930e9875 Updated submodules.
Change-Id: I8ad3df2f5d5e93ea8b6e9b823a83e9738f3bf489
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-04-07 10:28:48 +00:00
Caroline Chao
697291ef10 Remove specific rules for QtWayland
Let the module handle the platforms by itself.
See QtWayland change: 0448026b4ee75

Change-Id: I622d17d6219e71fb0ad014442763b515e58079af
Reviewed-by: Sergio Ahumada <sahumada@texla.cl>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-04-01 04:27:17 +00:00
Andrew Knight
98c4f1bbeb Upgrade win_flex/win_bison to 2.5.5 (bison 3.0)
This version is required by upstream ANGLE. win_bison conveniently uses a
different executable name as the existing bison copy, avoiding conflicts.

Change-Id: I2897ce97aef6795933d3ab8b5570a8494a55523e
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-04-01 04:27:00 +00:00
Qt Submodule Update Bot
8ad3df2f5d Updated submodules.
Change-Id: Ie0b703ccb7081240278fd803d18d3da11bc3b1b7
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-04-01 04:26:47 +00:00
Simon Hausmann
b34e3669ff Prospective fix for unnecessary submodule cloning
When cloning qtdeclarative, we end up also cloning qtdeclarative-testsuites,
which is not intentional for users of Qt (and init-repository). The init-repository
script checks for the submodule "repo".update key and skips the sub module if the value
is "ignore". However according to the documentation no checkout is to be done if the value
is "none", which is also what qtdeclarative's .gitmodules specifies for the ecmascript
test suite.

Change-Id: Ieb37607ae4ea7c32d6af886d3e2533fb9dea1f13
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-03-27 10:04:11 +00:00
Jani Heikkinen
1b9d3e4ec0 Merge "Merge remote-tracking branch 'origin/5.5' into dev" into refs/staging/dev 2015-03-27 10:04:06 +00:00
Qt Submodule Update Bot
b02397e9df Updated submodules.
Change-Id: Ibe35b9f9af23a2b84ccab7e24b10e70d9324e42b
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-03-27 10:03:59 +00:00
Qt Submodule Update Bot
e0b703ccb7 Updated submodules.
Change-Id: Icdc3bf5bd941362d1291566b94a67e6d6456a1ad
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-03-26 05:26:21 +00:00
Qt Submodule Update Bot
cdc3bf5bd9 Updated submodules.
Change-Id: I43a2c55cdea1098a23221915571445c1d5f23c2b
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-03-20 20:52:06 +00:00
Oswald Buddenhagen
4afaae4020 Merge remote-tracking branch 'origin/5.5' into dev
Change-Id: I44a6915c1212bb636456368a2b5dc36b9c26fe01
2015-03-20 13:17:05 +01:00
Qt Submodule Update Bot
43a2c55cde Updated submodules.
Change-Id: I1b9965bf167e4a510bb8662ea11e6ee71a566772
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-03-18 12:41:19 +00:00
Qt Submodule Update Bot
1b9965bf16 Updated submodules.
Change-Id: I9a9865ce282d870f755e08438ba187061a41ed9d
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-03-13 18:29:44 +00:00
Jani Heikkinen
cb28f324e5 Added Qt3D as a part of qt5.git default repositories
Change-Id: I0e74e6c6ab6c347396c449859b1cf24752a42fb8
Reviewed-by: Johanna Äijälä <johanna.aijala@digia.com>
2015-03-13 18:29:34 +00:00
Oswald Buddenhagen
a5edc40176 Merge remote-tracking branch 'origin/5.4' into 5.5 2015-03-09 12:28:37 +01:00
Oswald Buddenhagen
4b962aee82 Merge remote-tracking branch 'origin/dev' into 5.5
Conflicts:
	.gitmodules

Change-Id: I45e015a2c4eb3778d2346569de9b7f09e72a58bf
2015-03-03 11:21:03 +01:00
Jani Heikkinen
c2d151522b Update copyright headers
Qt copyrights are now in The Qt Company, so we could update the source
code headers accordingly. In the same go we should also fix the links to
point to qt.io.

Change-Id: Ieb3be34b0d4061fb8dc886991528951f59dbd67e
Reviewed-by: Tuukka Turunen <tuukka.turunen@digia.com>
Reviewed-by: Iikka Eklund <iikka.eklund@theqtcompany.com>
2015-02-25 03:23:07 +00:00
Qt Submodule Update Bot
9a9865ce28 Updated submodules.
Change-Id: Ibe35b9f9af23a2b84ccab7e24b10e70d9324e42b
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-02-25 03:22:48 +00:00
Alex Blasche
811a77a53c Add qtdeclarative as optional dependency for qtlocation
Change-Id: Id6d406cd98b64ba111d1eb9cb0b03360a05fbca7
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-02-17 06:42:55 +00:00
Oswald Buddenhagen
f46b8dc760 Merge remote-tracking branch 'origin/5.5' into dev
Change-Id: Ie7b1685080b978cc1d8790823f79e98e930ca147
2015-02-16 16:24:40 +01:00
Oswald Buddenhagen
f900f38f71 Merge remote-tracking branch 'origin/5.4' into 5.5
Conflicts:
	qtandroidextras
	qtbase
	qtconnectivity
	qtdeclarative
	qtdoc
	qtenginio
	qtmacextras
	qtmultimedia
	qtquick1
	qtscript
	qtsensors
	qtserialport
	qtsvg
	qttools
	qtwayland
	qtwebchannel
	qtwebengine
	qtwebkit
	qtwebsockets
	qtwinextras
	qtx11extras
	qtxmlpatterns

Change-Id: I98b5e8165cd8575888d18198d8d8e8412e7bfaf0
2015-02-16 16:19:22 +01:00
Oswald Buddenhagen
122d4551b5 Adjust submodule branches
Change-Id: I952bb9255a393baec2d9ede1cabfca7a47e2dc93
2015-02-16 15:50:02 +01:00
Qt Submodule Update Bot
2c39898934 Updated submodules.
Change-Id: I9347499e78f03710eaf24af3c1e7ac650d0ef81d
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-02-13 15:11:39 +00:00
Pasi Keranen
682766b9fa Add qtcanvas3d as submodule
[ChangeLog][General] Added QtCanvas3D module, a JavaScript 3D rendering API for QtQuick.

Change-Id: I9448f87ba8c8ccfb2dd6cf790d29bb561b9e9740
Reviewed-by: Pasi Keränen <pasi.keranen@digia.com>
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-02-13 15:11:19 +00:00
Pierre Rossi
3e40bbd114 QtWebEngine: add dependency on QtWebChannel
To allow using the integration that makes use of a custom transport over
Chromium IPC.
Also add QtLocation as an optional dependency for correctness, and
update the pinned sha1

Change-Id: I71d88be0859a74ad82f539d00f02b51d1c3e5218
Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
2015-02-11 21:59:19 +00:00
Alex Blasche
f36d7e5d9b QtLocation doesn't depend on QtMultimedia anymore.
Change-Id: Id75a7fc591064639a38694149517924dd33b56fb
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-02-04 06:15:03 +00:00
Qt Submodule Update Bot
9347499e78 Updated submodules.
Change-Id: I25db2aa87f437c03d7929959c3e6d94d9fc0d541
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2015-01-29 09:13:14 +00:00
Sean Harmer
6fd8d9ffd5 Qt3D depends upon qtimageformats module
Qt3D makes use of the webp image format in its examples to minimize
the size of assets. Support for webp is provided by qtimageformats.

Change-Id: Id70b584123dc6174848947029ee034593ccc42e0
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
2014-12-30 13:24:35 +01:00
Qt Submodule Update Bot
25db2aa87f Updated submodules.
Change-Id: Ia68a6b964f770fef3ea3d52f29d0c7a86186e80c
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
2014-12-18 08:14:43 +01:00
Oswald Buddenhagen
7943697cdd adjust submodule branch names for dev branch
Change-Id: I65ea644943aa345b8f0fd1d5fcdfccf8f86ed914
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
2014-12-05 14:53:15 +01:00
Oswald Buddenhagen
028bfeeee3 Merge remote-tracking branch 'origin/5.4' into dev
Change-Id: Ia8938b7bb2c0393c1799b64309c3cadc7293ad8e
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
2014-12-05 14:51:59 +01:00
Alex Blasche
a22e673995 Revert "Skip not supported modules on wince."
The decision to exclude wince builds from Qt is one the modules
have to do and not the "build system". While there might be
justification to do this for some modules the decision is a module
decision and as such the individual modules should make it.

This reverts commit d870bd65b0.

Change-Id: I60fd9944a71968c819a27da91fdc58923bbbb776
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2014-12-05 14:50:34 +01:00
Qt Submodule Update Bot
a17124e831 Updated submodules.
Change-Id: I869fce8a6bd6db20b58facdd2a476dacdf3b7d69
Reviewed-by: Jani Heikkinen <jani.heikkinen@digia.com>
2014-10-16 11:27:42 +02:00
Qt Submodule Update Bot
869fce8a6b Updated submodules.
Change-Id: Ie3a3e5d05bb46e1f80d1c83d4d3c564040a6ae14
Reviewed-by: Jani Heikkinen <jani.heikkinen@digia.com>
2014-09-12 20:16:37 +02:00
Qt Submodule Update Bot
e3a3e5d05b Updated submodules.
Change-Id: Ie073b25926d4c538cb9f41d4c59d171857a60ede
Reviewed-by: Jani Heikkinen <jani.heikkinen@digia.com>
2014-09-02 20:36:04 +02:00
Bjoern Breitmeyer
d870bd65b0 Skip not supported modules on wince.
Change-Id: I6ac73c759453813718c6d96c7d6cb27bcbf9815b
Reviewed-by: Jani Heikkinen <jani.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-08-28 08:34:39 +02:00
182 changed files with 13404 additions and 51327 deletions

1
.gitattributes vendored
View File

@@ -1,7 +1,6 @@
.tag export-subst
.gitignore export-ignore
.gitattributes export-ignore
.gitmodules export-ignore
.commit-template export-ignore
init-repository export-ignore
README.git export-ignore

259
.gitmodules vendored
View File

@@ -1,175 +1,312 @@
[submodule "qtbase"]
path = qtbase
url = ../qtbase.git
branch = 5.4
initrepo = true
branch = 5.7.1
status = essential
[submodule "qtsvg"]
depends = qtbase
path = qtsvg
url = ../qtsvg.git
branch = 5.4
initrepo = true
branch = 5.7.1
status = addon
[submodule "qtdeclarative"]
depends = qtbase
recommends = qtsvg qtxmlpatterns
path = qtdeclarative
url = ../qtdeclarative.git
branch = 5.4
initrepo = true
branch = 5.7.1
status = essential
[submodule "qtactiveqt"]
depends = qtbase
path = qtactiveqt
url = ../qtactiveqt.git
branch = 5.4
initrepo = true
branch = 5.7.1
status = addon
[submodule "qtscript"]
depends = qtbase
recommends = qttools
path = qtscript
url = ../qtscript.git
branch = 5.4
initrepo = true
branch = 5.7.1
status = deprecated
[submodule "qtmultimedia"]
depends = qtbase
recommends = qtdeclarative
path = qtmultimedia
url = ../qtmultimedia.git
branch = 5.4
initrepo = true
branch = 5.7.1
status = essential
[submodule "qttools"]
depends = qtbase
recommends = qtdeclarative qtactiveqt qtwebkit
path = qttools
url = ../qttools.git
branch = 5.4
initrepo = true
branch = 5.7.1
status = essential
[submodule "qtxmlpatterns"]
depends = qtbase
path = qtxmlpatterns
url = ../qtxmlpatterns.git
branch = 5.4
initrepo = true
branch = 5.7.1
status = addon
[submodule "qttranslations"]
depends = qttools
path = qttranslations
url = ../qttranslations.git
branch = 5.4
initrepo = true
branch = 5.7.1
status = essential
priority = 30
[submodule "qtdoc"]
depends = qtdeclarative
path = qtdoc
url = ../qtdoc.git
branch = 5.4
initrepo = true
branch = 5.7.1
status = essential
priority = 40
[submodule "qtrepotools"]
path = qtrepotools
url = ../qtrepotools.git
branch = master
initrepo = true
status = essential
qt = false
[submodule "qtwebkit"]
depends = qtbase
recommends = qtdeclarative qtlocation qtmultimedia qtsensors qtwebchannel qtxmlpatterns
path = qtwebkit
url = ../qtwebkit.git
branch = 5.4
initrepo = true
branch = 5.7
status = obsolete
project = WebKit.pro
priority = 20
[submodule "qtwebkit-examples"]
depends = qtwebkit qttools
path = qtwebkit-examples
url = ../qtwebkit-examples.git
branch = 5.4
initrepo = true
branch = 5.7
status = obsolete
[submodule "qtqa"]
depends = qtbase
path = qtqa
url = ../qtqa.git
branch = master
initrepo = true
status = essential
priority = 50
[submodule "qtlocation"]
depends = qtbase
recommends = qtdeclarative qtquickcontrols qtserialport qtsystems
path = qtlocation
url = ../qtlocation.git
branch = 5.4
initrepo = true
branch = 5.7.1
status = addon
[submodule "qtsensors"]
depends = qtbase
recommends = qtdeclarative
path = qtsensors
url = ../qtsensors.git
branch = 5.4
initrepo = true
branch = 5.7.1
status = addon
[submodule "qtsystems"]
depends = qtbase
recommends = qtdeclarative
path = qtsystems
url = ../qtsystems.git
branch = dev
status = ignore
[submodule "qtfeedback"]
depends = qtdeclarative
recommends = qtmultimedia
path = qtfeedback
url = ../qtfeedback.git
branch = master
status = ignore
[submodule "qtdocgallery"]
depends = qtdeclarative
path = qtdocgallery
url = ../qtdocgallery.git
branch = master
status = ignore
[submodule "qtpim"]
depends = qtdeclarative
path = qtpim
url = ../qtpim.git
branch = dev
status = ignore
[submodule "qtconnectivity"]
depends = qtbase
recommends = qtdeclarative qtandroidextras
path = qtconnectivity
url = ../qtconnectivity.git
branch = 5.4
initrepo = true
branch = 5.7.1
status = addon
[submodule "qtwayland"]
depends = qtbase
recommends = qtdeclarative
path = qtwayland
url = ../qtwayland.git
branch = 5.4
initrepo = true
branch = 5.7.1
status = addon
[submodule "qt3d"]
depends = qtdeclarative qtimageformats
recommends = qtgamepad
path = qt3d
url = ../qt3d.git
branch = dev
branch = 5.7.1
status = addon
[submodule "qtimageformats"]
depends = qtbase
path = qtimageformats
url = ../qtimageformats.git
branch = 5.4
initrepo = true
branch = 5.7.1
status = addon
[submodule "qtquick1"]
depends = qtscript
recommends = qtsvg qtxmlpatterns
path = qtquick1
url = ../qtquick1.git
branch = 5.4
initrepo = true
branch = 5.7
status = ignore
[submodule "qtgraphicaleffects"]
depends = qtdeclarative
path = qtgraphicaleffects
url = ../qtgraphicaleffects.git
branch = 5.4
initrepo = true
branch = 5.7.1
status = addon
[submodule "qtquickcontrols"]
depends = qtdeclarative
recommends = qtgraphicaleffects
path = qtquickcontrols
url = ../qtquickcontrols.git
branch = 5.4
initrepo = true
branch = 5.7.1
status = essential
[submodule "qtserialbus"]
depends = qtserialport
path = qtserialbus
url = ../qtserialbus.git
branch = 5.7.1
status = preview
[submodule "qtserialport"]
depends = qtbase
path = qtserialport
url = ../qtserialport.git
branch = 5.4
initrepo = true
branch = 5.7.1
status = addon
[submodule "qtx11extras"]
depends = qtbase
path = qtx11extras
url = ../qtx11extras.git
branch = 5.4
initrepo = true
branch = 5.7.1
status = addon
[submodule "qtmacextras"]
depends = qtbase
path = qtmacextras
url = ../qtmacextras.git
branch = 5.4
initrepo = true
branch = 5.7.1
status = addon
[submodule "qtwinextras"]
depends = qtbase
recommends = qtdeclarative qtmultimedia
path = qtwinextras
url = ../qtwinextras.git
branch = 5.4
initrepo = true
branch = 5.7.1
status = addon
[submodule "qtandroidextras"]
depends = qtbase
path = qtandroidextras
url = ../qtandroidextras.git
branch = 5.4
initrepo = true
branch = 5.7.1
status = addon
[submodule "qtenginio"]
depends = qtdeclarative
path = qtenginio
url = ../qtenginio.git
branch = 1.1
initrepo = true
branch = 5.7
status = ignore
[submodule "qtwebsockets"]
depends = qtbase
recommends = qtdeclarative
path = qtwebsockets
url = ../qtwebsockets.git
branch = 5.4
initrepo = true
branch = 5.7.1
status = addon
[submodule "qtwebchannel"]
depends = qtbase
recommends = qtdeclarative qtwebsockets
path = qtwebchannel
url = ../qtwebchannel.git
branch = 5.4
initrepo = true
branch = 5.7.1
status = addon
[submodule "qtwebengine"]
depends = qtquickcontrols qtwebchannel
recommends = qtlocation
path = qtwebengine
url = ../qtwebengine.git
branch = 5.4
initrepo = true
branch = 5.7.1
status = addon
priority = 10
[submodule "qtcanvas3d"]
depends = qtdeclarative
path = qtcanvas3d
url = ../qtcanvas3d.git
branch = 5.7.1
status = addon
[submodule "qtwebview"]
depends = qtdeclarative
recommends = qtwebengine
path = qtwebview
url = ../qtwebview.git
branch = 5.7.1
status = addon
[submodule "qtquickcontrols2"]
depends = qtgraphicaleffects
path = qtquickcontrols2
url = ../qtquickcontrols2.git
branch = 5.7.1
status = addon
[submodule "qtpurchasing"]
depends = qtbase qtandroidextras
recommends = qtdeclarative
path = qtpurchasing
url = ../qtpurchasing.git
branch = 5.7.1
status = addon
[submodule "qtcharts"]
depends = qtbase
recommends = qtdeclarative qtmultimedia
path = qtcharts
url = ../qtcharts.git
branch = 5.7.1
status = addon
[submodule "qtdatavis3d"]
depends = qtbase
recommends = qtdeclarative qtmultimedia
path = qtdatavis3d
url = ../qtdatavis3d.git
branch = 5.7.1
status = addon
[submodule "qtvirtualkeyboard"]
depends = qtbase qtdeclarative qtsvg
recommends = qtmultimedia qtquickcontrols
path = qtvirtualkeyboard
url = ../qtvirtualkeyboard.git
branch = 5.7.1
status = addon
[submodule "qtgamepad"]
depends = qtbase
recommends = qtdeclarative
path = qtgamepad
url = ../qtgamepad
branch = 5.7.1
status = preview
[submodule "qtscxml"]
depends = qtbase qtdeclarative
path = qtscxml
url = ../qtscxml
branch = 5.7.1
status = preview
[submodule "qtspeech"]
depends = qtbase
recommends = qtdeclarative qtmultimedia
path = qtspeech
url = ../qtspeech
branch = dev
status = ignore

View File

@@ -1,4 +1,4 @@
Digia Qt LGPL Exception version 1.1
The Qt Company Qt LGPL Exception version 1.1
As an additional permission to the GNU Lesser General Public License version
2.1, the object code form of a "work that uses the Library" may incorporate

View File

@@ -1,9 +1,9 @@
GNU GENERAL PUBLIC LICENSE
The Qt Toolkit is Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
Contact: http://www.qt-project.org/legal
The Qt Toolkit is Copyright (C) 2015 The Qt Company Ltd.
Contact: http://www.qt.io/licensing/
You may use, distribute and copy the Qt GUI Toolkit under the terms of
You may use, distribute and copy the Qt Toolkit under the terms of
GNU General Public License version 2, which is displayed below.
-------------------------------------------------------------------------

View File

@@ -1,3 +1,15 @@
GNU GENERAL PUBLIC LICENSE
The Qt Toolkit is Copyright (C) 2015 The Qt Company Ltd.
Contact: http://www.qt.io/licensing/
You may use, distribute and copy the Qt Toolkit under the terms of
GNU Lesser General Public License version 3. That license references
the General Public License version 3, that is displayed below. Other
portions of the Qt Toolkit may be licensed directly under this license.
-------------------------------------------------------------------------
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007

View File

@@ -1,9 +1,9 @@
GNU LESSER GENERAL PUBLIC LICENSE
The Qt Toolkit is Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
Contact: http://www.qt-project.org/legal
The Qt Toolkit is Copyright (C) 2015 The Qt Company Ltd.
Contact: http://www.qt.io/licensing/
You may use, distribute and copy the Qt GUI Toolkit under the terms of
You may use, distribute and copy the Qt Toolkit under the terms of
GNU Lesser General Public License version 2.1, which is displayed below.
-------------------------------------------------------------------------

View File

@@ -1,10 +1,12 @@
GNU LESSER GENERAL PUBLIC LICENSE
The Qt Toolkit is Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
Contact: http://www.qt-project.org/legal
The Qt Toolkit is Copyright (C) 2015 The Qt Company Ltd.
Contact: http://www.qt.io/licensing/
You may use, distribute and copy the Qt GUI Toolkit under the terms of
You may use, distribute and copy the Qt Toolkit under the terms of
GNU Lesser General Public License version 3, which is displayed below.
This license makes reference to the version 3 of the GNU General
Public License, which you can find in the LICENSE.GPLv3 file.
-------------------------------------------------------------------------

54
README
View File

@@ -10,53 +10,45 @@ HOW TO BUILD QT5
- Perl 5.8 or later
- Python 2.7 or later
- C++ compiler supporting the C++98 standard
- C++ compiler supporting the C++11 standard
For other platform specific requirements,
please see section "Setting up your machine" on:
http://wiki.qt.io/Get_The_Source
Optional requirements
---------------------
Licensing:
----------
- OpenSSL for SSL sockets or HTTPS
- Wayland
Opensource users:
New dependencies in Qt 5
------------------------
<source_package> = qt-everywhere-opensource-src-<version>
<license> = -opensource
Linux: On systems running X11, the XCB libraries are required for
the platform plugin to build. qtbase/src/plugins/platforms/xcb/README
lists the required packages.
Commercial users:
Qt 5 can make use of the ICU libraries providing Unicode and Globalization
support (see http://site.icu-project.org/). They are required for building
QtWebKit.
On Linux, they will be auto-detected.
On Windows, they need to be manually installed and the "include" and "lib"
folders of the ICU installation must be appended to the INCLUDE and LIB
environment variables after calling the Windows SDK setup script.
The "bin" folder of the ICU installation should be appended to the PATH
environment variable in order to for the DLLs to be found at run-time.
<source_package> = qt-everywhere-enterprise-src-<version>
<license> = -commercial
Linux, Mac:
-----------
cd <path>/qt-everywhere-opensource-src-<version>
./configure -prefix $PWD/qtbase -opensource -nomake tests
cd <path>/<source_package>
./configure -prefix $PWD/qtbase <license> -nomake tests
make -j 4
Windows:
--------
Open a Windows SDK (7.0, 7.1 or later) command prompt. Ensure that the
following tools can be found in the path:
Open a command prompt.
Ensure that the following tools can be found in the path:
* Supported compiler (Visual Studio 2012 or later,
MinGW-builds gcc 4.9 or later)
* Perl version 5.12 or later [http://www.activestate.com/activeperl/]
* Python version 2.7 or later [http://www.activestate.com/activepython/]
* Ruby version 1.9.3 or later [http://rubyinstaller.org/]
cd <path>\qt-everywhere-opensource-src-<version>
configure -prefix %CD%\qtbase -opensource -nomake tests
cd <path>\<source_package>
configure -prefix %CD%\qtbase <license> -nomake tests
nmake // jom // mingw32-make
To accelerate the bootstrap of qmake with MSVC, it may be useful to pass
@@ -81,13 +73,13 @@ HOW TO BUILD QT5
Example for a release build:
(adjust the `-jN' parameter as appropriate for your system)
./configure -prefix $PWD/qtbase -opensource
./configure -prefix $PWD/qtbase <license>
make -j4
Example for a developer build:
(enables more autotests, builds debug version of libraries, ...)
./configure -developer-build -opensource
./configure -developer-build <license>
make -j4
See output of `./configure -help' for documentation on various options to
@@ -97,11 +89,11 @@ HOW TO BUILD QT5
default in the build system.
It is possible to build selected modules with their dependencies by doing
a `make module-<foo>'. For example, to build only qtscript and qtwebkit,
and the modules they depend on:
a `make module-<foo>'. For example, to build only qtdeclarative,
and the modules it depends on:
./configure -prefix $PWD/qtbase -opensource
make -j4 module-qtscript module-qtwebkit
./configure -prefix $PWD/qtbase <license>
make -j4 module-qtdeclarative
This can save a lot of time if you are only interested in a subset of Qt5.

11
coin/README Normal file
View File

@@ -0,0 +1,11 @@
Continuous Integration
======================
This directory contains files used by Qt's Continuous Integration system (Coin).
provisioning
------------
Contains scripts that apply to different test machines in order to run automatic tests on them.
For Windows scripts, make sure that the machine has "Set-ExecutionPolicy RemoteSigned -Force" set.
(Run as admin in PowerShell)

View File

@@ -0,0 +1,61 @@
#############################################################################
##
## Copyright (C) 2016 The Qt Company Ltd.
## Contact: http://www.qt.io/licensing/
##
## This file is part of the test suite of the Qt Toolkit.
##
## $QT_BEGIN_LICENSE:LGPL21$
## Commercial License Usage
## Licensees holding valid commercial Qt licenses may use this file in
## accordance with the commercial license agreement provided with the
## Software or, alternatively, in accordance with the terms contained in
## a written agreement between you and The Qt Company. For licensing terms
## and conditions see http://www.qt.io/terms-conditions. For further
## information use the contact form at http://www.qt.io/contact-us.
##
## GNU Lesser General Public License Usage
## Alternatively, this file may be used under the terms of the GNU Lesser
## General Public License version 2.1 or version 3 as published by the Free
## Software Foundation and appearing in the file LICENSE.LGPLv21 and
## LICENSE.LGPLv3 included in the packaging of this file. Please review the
## following information to ensure the GNU Lesser General Public License
## requirements will be met: https://www.gnu.org/licenses/lgpl.html and
## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
##
## As a special exception, The Qt Company gives you certain additional
## rights. These rights are described in The Qt Company LGPL Exception
## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
##
## $QT_END_LICENSE$
##
#############################################################################
Function Remove {
Param (
[string]$1
)
If (Test-Path $1){
echo "Remove $1"
Remove-Item -Recurse -Force $1
}Else{
echo "'$1' does not exists or already removed !!"
}
}
Function Remove-Path {
Param (
[string]$Path
)
echo "Remove $path from Path"
$name = "Path"
$value = ([System.Environment]::GetEnvironmentVariable("Path").Split(";") | ? {$_ -ne "$path"}) -join ";"
$type = "Machine"
[System.Environment]::SetEnvironmentVariable($name,$value,$type)
}
# Remove Python
Remove C:\Python27
Remove-Path C:\python27\scripts
Remove-Path C:\python27

View File

@@ -0,0 +1,10 @@
. "$PSScriptRoot\helpers.ps1"
$zip = "c:\users\qt\downloads\cmake-3.6.2-win32-x86.zip"
Download https://cmake.org/files/v3.6/cmake-3.6.2-win32-x86.zip http://ci-files01-hki.ci.local/input/cmake/cmake-3.6.2-win32-x86.zip $zip
Verify-Checksum $zip "541F6E7EFD228E46770B8631FFE57097576E4D4E"
Extract-Zip $zip C:
Remove-Item C:\CMake -Force -Recurse
Rename-Item C:\cmake-3.6.2-win32-x86 C:\CMake

View File

@@ -0,0 +1,44 @@
. "$PSScriptRoot\helpers.ps1"
$installer = "c:\users\qt\downloads\conan-win_0_12_0.exe"
Download https://s3-eu-west-1.amazonaws.com/conanio-production/downloads/conan-win_0_12_0.exe http://ci-files01-hki.ci.local/input/conan/conan-win_0_12_0.exe $installer
Verify-Checksum $installer "719F30E6EED03149D75CDB28F80A7B873B43FF51"
& $installer /DIR=C:\Utils\Conan /VERYSILENT | Out-Null
[Environment]::SetEnvironmentVariable("CI_CONAN_BUILDINFO_DIR", "C:\Utils\conanbuildinfos", "Machine")
function Start-Process-Logged
{
Write-Host "Start-Process", $args
Start-Process @args
}
function Run-Conan-Install
{
Param (
[string]$ConanfilesDir,
[string]$BuildinfoDir,
[string]$Arch,
[string]$Compiler,
[string]$CompilerVersion,
[string]$CompilerRuntime
)
if ($CompilerRuntime) {
$runtimeArg = "-s compiler.runtime=$($CompilerRuntime)"
}
Get-ChildItem -Path "$ConanfilesDir\*.txt" |
ForEach-Object {
$outpwd = "C:\Utils\conanbuildinfos\$($BuildinfoDir)\$($_.BaseName)"
New-Item $outpwd -Type directory -Force
Start-Process-Logged `
"C:\Utils\Conan\conan\conan.exe" `
-WorkingDirectory $outpwd `
-ArgumentList "install -i -f $($_.FullName)", `
'-s', ('compiler="' + $Compiler + '"'), `
"-s os=Windows -s arch=$($Arch) -s compiler.version=$($CompilerVersion) $($runtimeArg)" `
-NoNewWindow -Wait -Verbose
}
}

View File

@@ -0,0 +1,60 @@
function Verify-Checksum
{
Param (
[string]$File=$(throw("You must specify a filename to get the checksum of.")),
[string]$Expected=$(throw("Checksum required")),
[ValidateSet("sha1","md5")][string]$Algorithm="sha1"
)
$fs = new-object System.IO.FileStream $File, "Open"
$algo = [type]"System.Security.Cryptography.$Algorithm"
$crypto = $algo::Create()
$hash = [BitConverter]::ToString($crypto.ComputeHash($fs)).Replace("-", "")
$fs.Close()
if ($hash -ne $Expected) {
Write-Error "Checksum verification failed, got: '$hash' expected: '$Expected'"
}
}
function Extract-Zip
{
Param (
[string]$Source,
[string]$Destination
)
echo "Extracting '$Source' to '$Destination'..."
New-Item -ItemType Directory -Force -Path $Destination
$shell = new-object -com shell.application
$zipfile = $shell.Namespace($Source)
$destinationFolder = $shell.Namespace($Destination)
$destinationFolder.CopyHere($zipfile.Items(), 16)
}
function BadParam
{
Param ([string]$Description)
throw("You must specify $Description")
}
function Download
{
Param (
[string] $OfficialUrl = $(BadParam("the official download URL")),
[string] $CachedUrl = $(BadParam("the locally cached URL")),
[string] $Destination = $(BadParam("a download target location"))
)
try {
Invoke-WebRequest -UseBasicParsing $CachedUrl -OutFile $Destination
} catch {
Invoke-WebRequest -UseBasicParsing $OfficialUrl -OutFile $Destination
}
}
function Add-Path
{
Param (
[string]$Path
)
echo "Adding $Path to Path"
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";$Path", [EnvironmentVariableTarget]::Machine)
}

View File

@@ -0,0 +1,9 @@
# ICU is already pre-installed on Windows machines, it would be nice to have
# the installation script, but for now let's just export the right variables
# FIXME: do we really want to have it per MSVC version? What about MSVC2015?
[Environment]::SetEnvironmentVariable("CI_ICU_PATH_MSVC2012", "C:\\Utils\\icu_53_1_msvc_2012_64_devel\\icu53_1", "Machine")
[Environment]::SetEnvironmentVariable("CI_ICU_PATH_MSVC2013", "C:\\Utils\\icu_53_1_msvc_2013_64_devel\\icu53_1", "Machine")
# FIXME: do we really want to use the 4.8.2 ICU build?
[Environment]::SetEnvironmentVariable("CI_ICU_PATH_Mingw49", "C:\Utils\icu_53_1_Mingw_builds_4_8_2_posix_seh_64_devel\icu53_1", "Machine")

View File

@@ -0,0 +1,9 @@
. "$PSScriptRoot\helpers.ps1"
$zip = "c:\users\qt\downloads\jom_1_1_0.zip"
Invoke-WebRequest -UseBasicParsing http://download.qt.io/official_releases/jom/jom_1_1_0.zip -OutFile $zip
Verify-Checksum $zip "C4149FE706B25738B4C4E54C73E180B9CAB55832"
Extract-Zip $zip C:\Utils\Jom
[Environment]::SetEnvironmentVariable("CI_JOM_PATH", "C:\Utils\Jom", "Machine")

View File

@@ -0,0 +1,51 @@
#############################################################################
##
## Copyright (C) 2016 The Qt Company Ltd.
## Contact: http://www.qt.io/licensing/
##
## This file is part of the test suite of the Qt Toolkit.
##
## $QT_BEGIN_LICENSE:LGPL21$
## Commercial License Usage
## Licensees holding valid commercial Qt licenses may use this file in
## accordance with the commercial license agreement provided with the
## Software or, alternatively, in accordance with the terms contained in
## a written agreement between you and The Qt Company. For licensing terms
## and conditions see http://www.qt.io/terms-conditions. For further
## information use the contact form at http://www.qt.io/contact-us.
##
## GNU Lesser General Public License Usage
## Alternatively, this file may be used under the terms of the GNU Lesser
## General Public License version 2.1 or version 3 as published by the Free
## Software Foundation and appearing in the file LICENSE.LGPLv21 and
## LICENSE.LGPLv3 included in the packaging of this file. Please review the
## following information to ensure the GNU Lesser General Public License
## requirements will be met: https://www.gnu.org/licenses/lgpl.html and
## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
##
## As a special exception, The Qt Company gives you certain additional
## rights. These rights are described in The Qt Company LGPL Exception
## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
##
## $QT_END_LICENSE$
##
#############################################################################
# Patch QNX SDK due to issues in the standard library.
# The patches are available here:
# http://www.qnx.com/download/feature.html?programid=27555
# A copy of the patch must be in the root of the Coin path in
# provisioning/qnx/patch-660-4367-RS6069_cpp-headers.zip
. "$PSScriptRoot\helpers.ps1"
$zip = "c:\users\qt\downloads\patch-660-4367-RS6069_cpp-headers.zip"
$sha1 = "57A11FFE4434AD567B3C36F7B828DBB468A9E565"
$tempDir = "C:\temp\qnx_path"
Invoke-WebRequest -UseBasicParsing http://${Env:COIN_WEBSERVER_ADDRESS}/coin/provisioning/qnx/patch-660-4367-RS6069_cpp-headers.zip -OutFile $zip
Verify-Checksum $zip $sha1
Extract-Zip $zip $tempDir
Copy-Item $tempDir\patches\660-4367\target\* C:\qnx660\target\ -recurse -force
Remove-Item $tempDir -recurse

View File

@@ -0,0 +1,64 @@
#############################################################################
##
## Copyright (C) 2016 The Qt Company Ltd.
## Contact: http://www.qt.io/licensing/
##
## This file is part of the test suite of the Qt Toolkit.
##
## $QT_BEGIN_LICENSE:LGPL21$
## Commercial License Usage
## Licensees holding valid commercial Qt licenses may use this file in
## accordance with the commercial license agreement provided with the
## Software or, alternatively, in accordance with the terms contained in
## a written agreement between you and The Qt Company. For licensing terms
## and conditions see http://www.qt.io/terms-conditions. For further
## information use the contact form at http://www.qt.io/contact-us.
##
## GNU Lesser General Public License Usage
## Alternatively, this file may be used under the terms of the GNU Lesser
## General Public License version 2.1 or version 3 as published by the Free
## Software Foundation and appearing in the file LICENSE.LGPLv21 and
## LICENSE.LGPLv3 included in the packaging of this file. Please review the
## following information to ensure the GNU Lesser General Public License
## requirements will be met: https://www.gnu.org/licenses/lgpl.html and
## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
##
## As a special exception, The Qt Company gives you certain additional
## rights. These rights are described in The Qt Company LGPL Exception
## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
##
## $QT_END_LICENSE$
##
#############################################################################
. "$PSScriptRoot\helpers.ps1"
# This script installs Python $version.
# Python is required for building Qt 5 from source.
$version = "2.7.10"
$package = "C:\Windows\temp\python-$version.msi"
# check bit version
if ([System.Environment]::Is64BitProcess -eq $TRUE) {
$externalUrl = "https://www.python.org/ftp/python/$version/python-$version.amd64.msi"
$internalUrl = "http://ci-files01-hki.ci.local/input/windows/python-$version.amd64.msi"
$sha1 = "f3a474f6ab191f9b43034c0fb5c98301553775d4"
}
else {
$externalUrl = "https://www.python.org/ftp/python/$version/python-$version.msi"
$internalUrl = "http://ci-files01-hki.ci.local/input/windows/python-$version.msi"
$sha1 = "9e62f37407e6964ee0374b32869b7b4ab050d12a"
}
echo "Fetching from URL..."
Download $externalUrl $internalUrl $package
Verify-Checksum $package $sha1
echo "Installing $package..."
cmd /c "$package /q"
# We need to change allowZip64 from 'False' to 'True' to be able to create ZIP files that use the ZIP64 extensions when the zipfile is larger than 2 GB
echo "Chancing allowZip64 value to 'True'..."
(Get-Content C:\Python27\lib\zipfile.py) | ForEach-Object { $_ -replace "allowZip64=False", "allowZip64=True" } | Set-Content C:\Python27\lib\zipfile.py
echo "Remove $package..."
del $package
Add-Path $path

View File

@@ -0,0 +1,7 @@
. "$PSScriptRoot\helpers.ps1"
$installer = "c:\users\qt\downloads\rubyinstaller-2.3.1.exe"
Download https://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.3.1.exe http://ci-files01-hki.ci.local/input/ruby/rubyinstaller-2.3.1.exe $installer
Verify-Checksum $installer "FF377F6F313849C3B0CD72EEC1EFFA436F0E4A36"
& $installer /DIR=C:\ruby /VERYSILENT

View File

@@ -0,0 +1,6 @@
# provides: fix for possible bug in the subscription manager
# version: provided by RedHat
# needed for yum to work properly in case there is incorrect data in
# the sslclientkey repository parameter value
sudo rm -f /etc/pki/entitlement/*
sudo subscription-manager refresh

View File

@@ -0,0 +1,4 @@
# provides: odbc devel packages on RHEL
# version: provided by default Linux distribution repository
# needed for configure -plugin-sql-odbc in qtbase
sudo yum install -y unixODBC-devel

View File

@@ -0,0 +1,101 @@
#!/bin/env bash
#############################################################################
##
## Copyright (C) 2016 The Qt Company Ltd.
## Contact: http://www.qt.io/licensing/
##
## This file is part of the test suite of the Qt Toolkit.
##
## $QT_BEGIN_LICENSE:LGPL21$
## Commercial License Usage
## Licensees holding valid commercial Qt licenses may use this file in
## accordance with the commercial license agreement provided with the
## Software or, alternatively, in accordance with the terms contained in
## a written agreement between you and The Qt Company. For licensing terms
## and conditions see http://www.qt.io/terms-conditions. For further
## information use the contact form at http://www.qt.io/contact-us.
##
## GNU Lesser General Public License Usage
## Alternatively, this file may be used under the terms of the GNU Lesser
## General Public License version 2.1 or version 3 as published by the Free
## Software Foundation and appearing in the file LICENSE.LGPLv21 and
## LICENSE.LGPLv3 included in the packaging of this file. Please review the
## following information to ensure the GNU Lesser General Public License
## requirements will be met: https://www.gnu.org/licenses/lgpl.html and
## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
##
## As a special exception, The Qt Company gives you certain additional
## rights. These rights are described in The Qt Company LGPL Exception
## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
##
## $QT_END_LICENSE$
##
#############################################################################
# This script install Android sdk and ndk.
# It also runs update for SDK API level 18, latest SDK tools, latest platform-tools and build-tools version 23.0.3
# Build-tools version 23.0.3 is the latest usable version for Red Hat 6. Newer version of build-tools, version 24.x.x, requires GLIBC_2.14, which is not available in Red Hat 6.
# Android 16 is the minimum requirement for Qt 5.7 applications, but we need something more recent than that for building Qt itself.
# E.g The Bluetooth features that require Android 18 will disable themselves dynamically when running on an Android 16 device.
# That's why we need to use Andoid-18 API version and decision was made to use it also with Qt 5.6.
set -e
targetFolder="/opt/android"
baseUrl="http://ci-files01-hki.ci.local/input/android"
# SDK
sdkVersion="android-sdk_r24.4.1-linux.tgz"
sdkBuildToolsVersion="23.0.3"
sdkApiLevel="android-18"
sdkUrl="$baseUrl/$sdkVersion"
sdkSha1="725bb360f0f7d04eaccff5a2d57abdd49061326d"
sdkTargetFile="$targetFolder/$sdkVersion"
sdkExtract="tar -C $targetFolder -zxf $sdkTargetFile"
sdkFolderName="android-sdk-linux"
sdkName="sdk"
# NDK
ndkVersion="android-ndk-r10e-linux-x86_64.zip"
ndkUrl="$baseUrl/$ndkVersion"
ndkSha1="f692681b007071103277f6edc6f91cb5c5494a32"
ndkTargetFile="$targetFolder/$ndkVersion"
ndkExtract="unzip $ndkTargetFile -d $targetFolder"
ndkFolderName="android-ndk-r10e"
ndkName="ndk"
function InstallAndroidPackage {
targetFolder=$1
version=$2
url=$3
sha1=$4
targetFile=$5
extract=$6
folderName=$7
name=$8
sudo wget --tries=5 --waitretry=5 --output-document=$targetFile $url || echo "Failed to download '$url' multiple times"
echo "$sha1 $targetFile" | sha1sum --check || echo "Failed to check sha1sum"
sudo chmod 755 $targetFile
sudo $extract || echo "Failed to extract $url"
sudo chown -R qt:users $targetFolder/$folderName
sudo mv $targetFolder/$folderName $targetFolder/$name || echo "Failed to rename $name"
sudo rm -fr $targetFolder/$version
}
sudo mkdir $targetFolder
# Install Android SDK
echo "Installing Android SDK version $sdkVersion..."
InstallAndroidPackage $targetFolder $sdkVersion $sdkUrl $sdkSha1 $sdkTargetFile "$sdkExtract" $sdkFolderName $sdkName
# Install Android NDK
echo "Installing Android NDK version $ndkVersion..."
InstallAndroidPackage $targetFolder $ndkVersion $ndkUrl $ndkSha1 $ndkTargetFile "$ndkExtract" $ndkFolderName $ndkName
# run update for Android SDK and install SDK API version 18, latest SDK tools, platform-tools and build-tools
echo "Running Android SDK update for API version 18, SDK-tools, platform-tools and build-tools-$sdkBuildToolsVersion..."
echo "y" |$targetFolder/sdk/tools/android update sdk --no-ui --all --filter $sdkApiLevel,tools,platform-tools,build-tools-$sdkBuildToolsVersion || echo "Failed to run update"

View File

@@ -0,0 +1,70 @@
#!/bin/env bash
#############################################################################
##
## Copyright (C) 2016 The Qt Company Ltd.
## Contact: http://www.qt.io/licensing/
##
## This file is part of the test suite of the Qt Toolkit.
##
## $QT_BEGIN_LICENSE:LGPL21$
## Commercial License Usage
## Licensees holding valid commercial Qt licenses may use this file in
## accordance with the commercial license agreement provided with the
## Software or, alternatively, in accordance with the terms contained in
## a written agreement between you and The Qt Company. For licensing terms
## and conditions see http://www.qt.io/terms-conditions. For further
## information use the contact form at http://www.qt.io/contact-us.
##
## GNU Lesser General Public License Usage
## Alternatively, this file may be used under the terms of the GNU Lesser
## General Public License version 2.1 or version 3 as published by the Free
## Software Foundation and appearing in the file LICENSE.LGPLv21 and
## LICENSE.LGPLv3 included in the packaging of this file. Please review the
## following information to ensure the GNU Lesser General Public License
## requirements will be met: https://www.gnu.org/licenses/lgpl.html and
## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
##
## As a special exception, The Qt Company gives you certain additional
## rights. These rights are described in The Qt Company LGPL Exception
## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
##
## $QT_END_LICENSE$
##
#############################################################################
# This script installs the right ICU version
set -e
icuVersion="56.1"
icuLocation="/usr/lib64"
sha1="f2eab775c04ce5f3bdae6c47d06b62158b5d6753"
function Install7ZPackageFromURL {
url=$1
expectedSha1=$2
targetDirectory=$3
targetFile=`mktemp` || echo "Failed to create temporary file"
wget --tries=5 --waitretry=5 --output-document=$targetFile $url || echo "Failed to download '$url' multiple times"
echo "$expectedSha1 $targetFile" | sha1sum --check || echo "Failed to check sha1sum"
sudo /usr/local/bin/7z x -yo$targetDirectory $targetFile || echo "Failed to unzip $url archive"
rm $targetFile
}
echo "Installing custom ICU $icuVersion $sha1 packages on RHEL to $icuLocation"
baseBinaryPackageURL="http://master.qt.io/development_releases/prebuilt/icu/prebuilt/$icuVersion/icu-linux-g++-Rhel6.6-x64.7z"
Install7ZPackageFromURL $baseBinaryPackageURL $sha1 "/usr/lib64"
echo "Installing custom ICU devel packages on RHEL"
sha1Dev="82f8b216371b848b8d36ecec7fe7b6e9b0dba0df"
develPackageURL="http://master.qt.io/development_releases/prebuilt/icu/prebuilt/$icuVersion/icu-linux-g++-Rhel6.6-x64-devel.7z"
tempDir=`mktemp -d` || echo "Failed to create temporary directory"
trap "sudo rm -fr $tempDir" EXIT
Install7ZPackageFromURL $develPackageURL $sha1Dev $tempDir
sudo cp -a $tempDir/lib/* /usr/lib64
sudo cp -a $tempDir/* /usr/
sudo /sbin/ldconfig

View File

@@ -0,0 +1,64 @@
#!/bin/env bash
#############################################################################
##
## Copyright (C) 2016 The Qt Company Ltd.
## Contact: http://www.qt.io/licensing/
##
## This file is part of the test suite of the Qt Toolkit.
##
## $QT_BEGIN_LICENSE:LGPL21$
## Commercial License Usage
## Licensees holding valid commercial Qt licenses may use this file in
## accordance with the commercial license agreement provided with the
## Software or, alternatively, in accordance with the terms contained in
## a written agreement between you and The Qt Company. For licensing terms
## and conditions see http://www.qt.io/terms-conditions. For further
## information use the contact form at http://www.qt.io/contact-us.
##
## GNU Lesser General Public License Usage
## Alternatively, this file may be used under the terms of the GNU Lesser
## General Public License version 2.1 or version 3 as published by the Free
## Software Foundation and appearing in the file LICENSE.LGPLv21 and
## LICENSE.LGPLv3 included in the packaging of this file. Please review the
## following information to ensure the GNU Lesser General Public License
## requirements will be met: https://www.gnu.org/licenses/lgpl.html and
## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
##
## As a special exception, The Qt Company gives you certain additional
## rights. These rights are described in The Qt Company LGPL Exception
## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
##
## $QT_END_LICENSE$
##
#############################################################################
# Patch QNX SDK due to issues in the standard library.
# The patches are available here:
# http://www.qnx.com/download/feature.html?programid=27555
# A copy of the patch must be in the root of the Coin path in
# provisioning/qnx/patch-660-4367-RS6069_cpp-headers.zip
set -e
sha1="57a11ffe4434ad567b3c36f7b828dbb468a9e565"
function InstallZipPackageFromURL {
url=$1
expectedSha1=$2
targetDirectory=$3
targetFile=`mktemp` || echo "Failed to create temporary file"
wget --tries=5 --waitretry=5 --output-document=$targetFile $url || echo "Failed to download '$url' multiple times"
echo "$expectedSha1 $targetFile" | sha1sum --check || echo "Failed to check sha1sum"
tempDir=`mktemp -d` || echo "Failed to create temporary directory"
/usr/bin/unzip -o -d $tempDir $targetFile || echo "Failed to unzip $url archive"
trap "sudo rm -fr $targetFile $tempDir" EXIT
sudo cp -rafv $tempDir/patches/660-4367/target/* /opt/qnx660/target/
}
echo "Patching QNX"
baseBinaryPackageURL="http://${COIN_WEBSERVER_ADDRESS}/coin/provisioning/qnx/patch-660-4367-RS6069_cpp-headers.zip"
InstallZipPackageFromURL $baseBinaryPackageURL $sha1 "/opt/qnx660/target/"

View File

@@ -0,0 +1,49 @@
#!/bin/env bash
#############################################################################
##
## Copyright (C) 2016 The Qt Company Ltd.
## Contact: http://www.qt.io/licensing/
##
## This file is part of the test suite of the Qt Toolkit.
##
## $QT_BEGIN_LICENSE:LGPL21$
## Commercial License Usage
## Licensees holding valid commercial Qt licenses may use this file in
## accordance with the commercial license agreement provided with the
## Software or, alternatively, in accordance with the terms contained in
## a written agreement between you and The Qt Company. For licensing terms
## and conditions see http://www.qt.io/terms-conditions. For further
## information use the contact form at http://www.qt.io/contact-us.
##
## GNU Lesser General Public License Usage
## Alternatively, this file may be used under the terms of the GNU Lesser
## General Public License version 2.1 or version 3 as published by the Free
## Software Foundation and appearing in the file LICENSE.LGPLv21 and
## LICENSE.LGPLv3 included in the packaging of this file. Please review the
## following information to ensure the GNU Lesser General Public License
## requirements will be met: https://www.gnu.org/licenses/lgpl.html and
## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
##
## As a special exception, The Qt Company gives you certain additional
## rights. These rights are described in The Qt Company LGPL Exception
## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
##
## $QT_END_LICENSE$
##
#############################################################################
sudo apt-get update
sudo apt-get install -y libboost-dev libboost-thread-dev libboost-system-dev libboost-program-options-dev libboost-filesystem-dev libxml2-dev libboost-regex-dev
TEMPDIR=$(mktemp --directory) || echo "Failed to create temporary directory"
trap "sudo rm -fr $TEMPDIR" EXIT
cd $TEMPDIR
git clone https://github.com/FreeOpcUa/freeopcua.git freeopcua
cd freeopcua
git checkout 57b6993d39b6761af773fa4fa37c3fbd39c764f1
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr/local ..
make
sudo make install

View File

@@ -0,0 +1,2 @@
#!/bin/sh
defaults write com.apple.CrashReporter DialogType server

View File

@@ -0,0 +1,2 @@
#!/bin/sh
defaults write com.apple.CrashReporter DialogType server

View File

@@ -0,0 +1,2 @@
#!/bin/sh
defaults write com.apple.CrashReporter DialogType server

View File

@@ -0,0 +1,2 @@
#!/bin/sh
defaults write com.apple.CrashReporter DialogType server

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\01-windows_removethemall.ps1"

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\cmake.ps1"

View File

@@ -0,0 +1,9 @@
. "$PSScriptRoot\..\common\conan.ps1"
Run-Conan-Install `
-ConanfilesDir "$PSScriptRoot\conanfiles" `
-BuildinfoDir MSVC2015-x86 `
-Arch x86 `
-Compiler "Visual Studio" `
-CompilerVersion 14 `
-CompilerRuntime MD

View File

@@ -0,0 +1,20 @@
[requires]
cmake_installer/0.1@lasote/testing
icu/57.1@Vitallium/stable
libxml2-qt/2.9.4@Vitallium/stable
libxslt-qt/1.1.29@Vitallium/stable
[generators]
cmake
virtualenv
[options]
cmake_installer:version=3.5.2
icu:shared=True
libxml2-qt:shared=False
libxslt-qt:shared=False
[imports]
bin, icudt57.dll -> ./bin
bin, icuin57.dll -> ./bin
bin, icuuc57.dll -> ./bin

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\icu.ps1"

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\jom.ps1"

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\python.ps1"

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\ruby.ps1"

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\01-windows_removethemall.ps1"

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\cmake.ps1"

View File

@@ -0,0 +1,9 @@
. "$PSScriptRoot\..\common\conan.ps1"
Run-Conan-Install `
-ConanfilesDir "$PSScriptRoot\conanfiles" `
-BuildinfoDir MSVC2015-x86_64 `
-Arch x86_64 `
-Compiler "Visual Studio" `
-CompilerVersion 14 `
-CompilerRuntime MD

View File

@@ -0,0 +1,20 @@
[requires]
cmake_installer/0.1@lasote/testing
icu/57.1@Vitallium/stable
libxml2-qt/2.9.4@Vitallium/stable
libxslt-qt/1.1.29@Vitallium/stable
[generators]
cmake
virtualenv
[options]
cmake_installer:version=3.5.2
icu:shared=True
libxml2-qt:shared=False
libxslt-qt:shared=False
[imports]
bin, icudt57.dll -> ./bin
bin, icuin57.dll -> ./bin
bin, icuuc57.dll -> ./bin

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\icu.ps1"

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\jom.ps1"

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\python.ps1"

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\ruby.ps1"

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\01-windows_removethemall.ps1"

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\icu.ps1"

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\jom.ps1"

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\patch_qnx.ps1"

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\python.ps1"

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\01-windows_removethemall.ps1"

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\icu.ps1"

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\jom.ps1"

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\python.ps1"

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\01-windows_removethemall.ps1"

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\icu.ps1"

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\jom.ps1"

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\python.ps1"

36
configure vendored
View File

@@ -1,41 +1,33 @@
#! /bin/sh
#############################################################################
##
## Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
## Contact: http://www.qt-project.org/legal
## Copyright (C) 2015 The Qt Company Ltd.
## Contact: http://www.qt.io/licensing/
##
## This file is part of the build tools of the Qt Toolkit.
##
## $QT_BEGIN_LICENSE:LGPL$
## $QT_BEGIN_LICENSE:LGPL21$
## Commercial License Usage
## Licensees holding valid commercial Qt licenses may use this file in
## accordance with the commercial license agreement provided with the
## Software or, alternatively, in accordance with the terms contained in
## a written agreement between you and Digia. For licensing terms and
## conditions see http://qt.digia.com/licensing. For further information
## use the contact form at http://qt.digia.com/contact-us.
## a written agreement between you and The Qt Company. For licensing terms
## and conditions see http://www.qt.io/terms-conditions. For further
## information use the contact form at http://www.qt.io/contact-us.
##
## GNU Lesser General Public License Usage
## Alternatively, this file may be used under the terms of the GNU Lesser
## General Public License version 2.1 as published by the Free Software
## Foundation and appearing in the file LICENSE.LGPL included in the
## packaging of this file. Please review the following information to
## ensure the GNU Lesser General Public License version 2.1 requirements
## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
## General Public License version 2.1 or version 3 as published by the Free
## Software Foundation and appearing in the file LICENSE.LGPLv21 and
## LICENSE.LGPLv3 included in the packaging of this file. Please review the
## following information to ensure the GNU Lesser General Public License
## requirements will be met: https://www.gnu.org/licenses/lgpl.html and
## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
##
## In addition, as a special exception, Digia gives you certain additional
## rights. These rights are described in the Digia Qt LGPL Exception
## As a special exception, The Qt Company gives you certain additional
## rights. These rights are described in The Qt Company LGPL Exception
## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
##
## GNU General Public License Usage
## Alternatively, this file may be used under the terms of the GNU
## General Public License version 3.0 as published by the Free Software
## Foundation and appearing in the file LICENSE.GPL included in the
## packaging of this file. Please review the following information to
## ensure the GNU General Public License version 3.0 requirements will be
## met: http://www.gnu.org/copyleft/gpl.html.
##
##
## $QT_END_LICENSE$
##
#############################################################################

View File

@@ -1,41 +1,33 @@
@echo off
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::
:: Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
:: Contact: http://www.qt-project.org/legal
:: Copyright (C) 2015 The Qt Company Ltd.
:: Contact: http://www.qt.io/licensing/
::
:: This file is part of the tools applications of the Qt Toolkit.
::
:: $QT_BEGIN_LICENSE:LGPL$
:: $QT_BEGIN_LICENSE:LGPL21$
:: Commercial License Usage
:: Licensees holding valid commercial Qt licenses may use this file in
:: accordance with the commercial license agreement provided with the
:: Software or, alternatively, in accordance with the terms contained in
:: a written agreement between you and Digia. For licensing terms and
:: conditions see http://qt.digia.com/licensing. For further information
:: use the contact form at http://qt.digia.com/contact-us.
:: a written agreement between you and The Qt Company. For licensing terms
:: and conditions see http://www.qt.io/terms-conditions. For further
:: information use the contact form at http://www.qt.io/contact-us.
::
:: GNU Lesser General Public License Usage
:: Alternatively, this file may be used under the terms of the GNU Lesser
:: General Public License version 2.1 as published by the Free Software
:: Foundation and appearing in the file LICENSE.LGPL included in the
:: packaging of this file. Please review the following information to
:: ensure the GNU Lesser General Public License version 2.1 requirements
:: will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
:: General Public License version 2.1 or version 3 as published by the Free
:: Software Foundation and appearing in the file LICENSE.LGPLv21 and
:: LICENSE.LGPLv3 included in the packaging of this file. Please review the
:: following information to ensure the GNU Lesser General Public License
:: requirements will be met: https://www.gnu.org/licenses/lgpl.html and
:: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
::
:: In addition, as a special exception, Digia gives you certain additional
:: rights. These rights are described in the Digia Qt LGPL Exception
:: As a special exception, The Qt Company gives you certain additional
:: rights. These rights are described in The Qt Company LGPL Exception
:: version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
::
:: GNU General Public License Usage
:: Alternatively, this file may be used under the terms of the GNU
:: General Public License version 3.0 as published by the Free Software
:: Foundation and appearing in the file LICENSE.GPL included in the
:: packaging of this file. Please review the following information to
:: ensure the GNU General Public License version 3.0 requirements will be
:: met: http://www.gnu.org/copyleft/gpl.html.
::
::
:: $QT_END_LICENSE$
::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

BIN
gnuwin32/bin/bison.exe Normal file → Executable file

Binary file not shown.

View File

@@ -1,2 +0,0 @@
#! /bin/sh
exec 'c:/progra~1/bison/bin/bison' -y "$@"

View File

@@ -27,7 +27,7 @@ Currently, the supported skeletons are:
These skeletons are the only ones supported by the Bison team.
Because the interface between skeletons and the bison program is not
finished, *we are not bound to it*. In particular, Bison is not
mature enough for us to consider that ``foreign skeletons'' are
mature enough for us to consider that "foreign skeletons" are
supported.
* m4sugar
@@ -52,7 +52,7 @@ into various formats.
-----
Copyright (C) 2002, 2008 Free Software Foundation, Inc.
Copyright (C) 2002, 2008-2013 Free Software Foundation, Inc.
This file is part of GNU Bison.

1063
gnuwin32/bin/data/bison.m4 Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,8 @@
-*- Autoconf -*-
# C++ skeleton dispatching for Bison.
# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
# Copyright (C) 2006-2007, 2009-2013 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by

544
gnuwin32/bin/data/c++.m4 Normal file
View File

@@ -0,0 +1,544 @@
-*- Autoconf -*-
# C++ skeleton for Bison
# Copyright (C) 2002-2013 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
m4_include(b4_pkgdatadir/[c.m4])
# b4_comment(TEXT, [PREFIX])
# --------------------------
# Put TEXT in comment. Prefix all the output lines with PREFIX.
m4_define([b4_comment],
[b4_comment_([$1], [$2// ], [$2// ])])
## -------- ##
## Checks. ##
## -------- ##
b4_percent_define_check_kind([api.namespace], [code], [deprecated])
b4_percent_define_check_kind([parser_class_name], [code], [deprecated])
## ---------------- ##
## Default values. ##
## ---------------- ##
b4_percent_define_default([[parser_class_name]], [[parser]])
# Don't do that so that we remember whether we're using a user
# request, or the default value.
#
# b4_percent_define_default([[api.location.type]], [[location]])
b4_percent_define_default([[filename_type]], [[std::string]])
# Make it a warning for those who used betas of Bison 3.0.
b4_percent_define_default([[api.namespace]], m4_defn([b4_prefix]))
b4_percent_define_default([[global_tokens_and_yystype]], [[false]])
b4_percent_define_default([[define_location_comparison]],
[m4_if(b4_percent_define_get([[filename_type]]),
[std::string], [[true]], [[false]])])
## ----------- ##
## Namespace. ##
## ----------- ##
m4_define([b4_namespace_ref], [b4_percent_define_get([[api.namespace]])])
# Don't permit an empty b4_namespace_ref. Any '::parser::foo' appended to it
# would compile as an absolute reference with 'parser' in the global namespace.
# b4_namespace_open would open an anonymous namespace and thus establish
# internal linkage. This would compile. However, it's cryptic, and internal
# linkage for the parser would be specified in all translation units that
# include the header, which is always generated. If we ever need to permit
# internal linkage somehow, surely we can find a cleaner approach.
m4_if(m4_bregexp(b4_namespace_ref, [^[ ]*$]), [-1], [],
[b4_complain_at(b4_percent_define_get_loc([[api.namespace]]),
[[namespace reference is empty]])])
# Instead of assuming the C++ compiler will do it, Bison should reject any
# invalid b4_namepsace_ref that would be converted to a valid
# b4_namespace_open. The problem is that Bison doesn't always output
# b4_namespace_ref to uncommented code but should reserve the ability to do so
# in future releases without risking breaking any existing user grammars.
# Specifically, don't allow empty names as b4_namespace_open would just convert
# those into anonymous namespaces, and that might tempt some users.
m4_if(m4_bregexp(b4_namespace_ref, [::[ ]*::]), [-1], [],
[b4_complain_at(b4_percent_define_get_loc([[api.namespace]]),
[[namespace reference has consecutive "::"]])])
m4_if(m4_bregexp(b4_namespace_ref, [::[ ]*$]), [-1], [],
[b4_complain_at(b4_percent_define_get_loc([[api.namespace]]),
[[namespace reference has a trailing "::"]])])
m4_define([b4_namespace_open],
[b4_user_code([b4_percent_define_get_syncline([[api.namespace]])
[namespace ]m4_bpatsubst(m4_dquote(m4_bpatsubst(m4_dquote(b4_namespace_ref),
[^\(.\)[ ]*::], [\1])),
[::], [ { namespace ])[ {]])])
m4_define([b4_namespace_close],
[b4_user_code([b4_percent_define_get_syncline([[api.namespace]])
m4_bpatsubst(m4_dquote(m4_bpatsubst(m4_dquote(b4_namespace_ref[ ]),
[^\(.\)[ ]*\(::\)?\([^][:]\|:[^:]\)*],
[\1])),
[::\([^][:]\|:[^:]\)*], [} ])[} // ]b4_namespace_ref])])
# b4_token_enums
# --------------
# Output the definition of the tokens as enums.
m4_define([b4_token_enums],
[[enum yytokentype
{
]m4_join([,
],
b4_symbol_map([b4_token_enum]))[
};]dnl
])
## ----------------- ##
## Semantic Values. ##
## ----------------- ##
# b4_value_type_declare
# ---------------------
# Declare semantic_type.
m4_define([b4_value_type_declare],
[b4_value_type_setup[]dnl
[ /// Symbol semantic values.
]m4_bmatch(b4_percent_define_get_kind([[api.value.type]]),
[code],
[[ typedef ]b4_percent_define_get([[api.value.type]])[ semantic_type;]],
[m4_bmatch(b4_percent_define_get([[api.value.type]]),
[union\|union-directive],
[[ union semantic_type
{
]b4_user_union_members[
};]])])dnl
])
# b4_public_types_declare
# -----------------------
# Define the public types: token, semantic value, location, and so forth.
# Depending on %define token_lex, may be output in the header or source file.
m4_define([b4_public_types_declare],
[[#ifndef ]b4_api_PREFIX[STYPE
]b4_value_type_declare[
#else
typedef ]b4_api_PREFIX[STYPE semantic_type;
#endif]b4_locations_if([
/// Symbol locations.
typedef b4_percent_define_get([[api.location.type]],
[[location]]) location_type;])[
/// Syntax errors thrown from user actions.
struct syntax_error : std::runtime_error
{
syntax_error (]b4_locations_if([const location_type& l, ])[const std::string& m);]b4_locations_if([
location_type location;])[
};
/// Tokens.
struct token
{
]b4_token_enums[
};
/// (External) token type, as returned by yylex.
typedef token::yytokentype token_type;
/// Internal symbol number.
typedef int symbol_number_type;
/// Internal symbol number for tokens (subsumed by symbol_number_type).
typedef ]b4_int_type_for([b4_translate])[ token_number_type;
/// A complete symbol.
///
/// Expects its Base type to provide access to the symbol type
/// via type_get().
///
/// Provide access to semantic value]b4_locations_if([ and location])[.
template <typename Base>
struct basic_symbol : Base
{
/// Alias to Base.
typedef Base super_type;
/// Default constructor.
basic_symbol ();
/// Copy constructor.
basic_symbol (const basic_symbol& other);
]b4_variant_if([[
/// Constructor for valueless symbols, and symbols from each type.
]b4_type_foreach([b4_basic_symbol_constructor_declare])], [[
/// Constructor for valueless symbols.
basic_symbol (typename Base::kind_type t]b4_locations_if([,
const location_type& l])[);]])[
/// Constructor for symbols with semantic value.
basic_symbol (typename Base::kind_type t,
const semantic_type& v]b4_locations_if([,
const location_type& l])[);
~basic_symbol ();
/// Destructive move, \a s is emptied into this.
void move (basic_symbol& s);
/// The semantic value.
semantic_type value;]b4_locations_if([
/// The location.
location_type location;])[
private:
/// Assignment operator.
basic_symbol& operator= (const basic_symbol& other);
};
/// Type access provider for token (enum) based symbols.
struct by_type
{
/// Default constructor.
by_type ();
/// Copy constructor.
by_type (const by_type& other);
/// The symbol type as needed by the constructor.
typedef token_type kind_type;
/// Constructor from (external) token numbers.
by_type (kind_type t);
/// Steal the symbol type from \a that.
void move (by_type& that);
/// The (internal) type number (corresponding to \a type).
/// -1 when this symbol is empty.
symbol_number_type type_get () const;
/// The token.
token_type token () const;
enum { empty = 0 };
/// The symbol type.
/// -1 when this symbol is empty.
token_number_type type;
};
/// "External" symbols: returned by the scanner.
typedef basic_symbol<by_type> symbol_type;
]b4_symbol_constructor_declare])
# b4_public_types_define
# ----------------------
# Provide the implementation needed by the public types.
m4_define([b4_public_types_define],
[[ inline
]b4_parser_class_name[::syntax_error::syntax_error (]b4_locations_if([const location_type& l, ])[const std::string& m)
: std::runtime_error (m)]b4_locations_if([
, location (l)])[
{}
// basic_symbol.
template <typename Base>
inline
]b4_parser_class_name[::basic_symbol<Base>::basic_symbol ()
: value ()
{}
template <typename Base>
inline
]b4_parser_class_name[::basic_symbol<Base>::basic_symbol (const basic_symbol& other)
: Base (other)
, value ()]b4_locations_if([
, location (other.location)])[
{
]b4_variant_if([b4_symbol_variant([other.type_get ()], [value], [copy],
[other.value])],
[value = other.value;])[
}
template <typename Base>
inline
]b4_parser_class_name[::basic_symbol<Base>::basic_symbol (]b4_join(
[typename Base::kind_type t],
[const semantic_type& v],
b4_locations_if([const location_type& l]))[)
: Base (t)
, value (]b4_variant_if([], [v])[)]b4_locations_if([
, location (l)])[
{]b4_variant_if([[
(void) v;
]b4_symbol_variant([this->type_get ()], [value], [copy], [v])])[}
]b4_variant_if([[
// Implementation of basic_symbol constructor for each type.
]b4_type_foreach([b4_basic_symbol_constructor_define])], [[
/// Constructor for valueless symbols.
template <typename Base>
inline
]b4_parser_class_name[::basic_symbol<Base>::basic_symbol (]b4_join(
[typename Base::kind_type t],
b4_locations_if([const location_type& l]))[)
: Base (t)
, value ()]b4_locations_if([
, location (l)])[
{}]])[
template <typename Base>
inline
]b4_parser_class_name[::basic_symbol<Base>::~basic_symbol ()
{]b4_variant_if([[
// User destructor.
symbol_number_type yytype = this->type_get ();
switch (yytype)
{
]b4_symbol_foreach([b4_symbol_destructor])dnl
[ default:
break;
}
// Type destructor.
]b4_symbol_variant([[yytype]], [[value]], [[template destroy]])])[
}
template <typename Base>
inline
void
]b4_parser_class_name[::basic_symbol<Base>::move (basic_symbol& s)
{
super_type::move(s);
]b4_variant_if([b4_symbol_variant([this->type_get ()], [value], [move],
[s.value])],
[value = s.value;])[]b4_locations_if([
location = s.location;])[
}
// by_type.
inline
]b4_parser_class_name[::by_type::by_type ()
: type (empty)
{}
inline
]b4_parser_class_name[::by_type::by_type (const by_type& other)
: type (other.type)
{}
inline
]b4_parser_class_name[::by_type::by_type (token_type t)
: type (yytranslate_ (t))
{}
inline
void
]b4_parser_class_name[::by_type::move (by_type& that)
{
type = that.type;
that.type = empty;
}
inline
int
]b4_parser_class_name[::by_type::type_get () const
{
return type;
}
]b4_token_ctor_if([[
inline
]b4_parser_class_name[::token_type
]b4_parser_class_name[::by_type::token () const
{
// YYTOKNUM[NUM] -- (External) token number corresponding to the
// (internal) symbol number NUM (which must be that of a token). */
static
const ]b4_int_type_for([b4_toknum])[
yytoken_number_[] =
{
]b4_toknum[
};
return static_cast<token_type> (yytoken_number_[type]);
}
]])[]dnl
b4_symbol_constructor_define])
# b4_symbol_constructor_declare
# b4_symbol_constructor_define
# -----------------------------
# Declare/define symbol constructors for all the value types.
# Use at class-level. Redefined in variant.hh.
m4_define([b4_symbol_constructor_declare], [])
m4_define([b4_symbol_constructor_define], [])
# b4_yytranslate_define
# ---------------------
# Define yytranslate_. Sometimes used in the header file,
# sometimes in the cc file.
m4_define([b4_yytranslate_define],
[[ // Symbol number corresponding to token number t.
inline
]b4_parser_class_name[::token_number_type
]b4_parser_class_name[::yytranslate_ (]b4_token_ctor_if([token_type],
[int])[ t)
{
static
const token_number_type
translate_table[] =
{
]b4_translate[
};
const unsigned int user_token_number_max_ = ]b4_user_token_number_max[;
const token_number_type undef_token_ = ]b4_undef_token_number[;
if (static_cast<int>(t) <= yyeof_)
return yyeof_;
else if (static_cast<unsigned int> (t) <= user_token_number_max_)
return translate_table[t];
else
return undef_token_;
}
]])
# b4_lhs_value([TYPE])
# --------------------
# Expansion of $<TYPE>$.
m4_define([b4_lhs_value],
[b4_symbol_value([yyval], [$1])])
# b4_rhs_value(RULE-LENGTH, NUM, [TYPE])
# --------------------------------------
# Expansion of $<TYPE>NUM, where the current rule has RULE-LENGTH
# symbols on RHS.
m4_define([b4_rhs_value],
[b4_symbol_value([yysemantic_stack_@{($1) - ($2)@}], [$3])])
# b4_lhs_location()
# -----------------
# Expansion of @$.
m4_define([b4_lhs_location],
[(yyloc)])
# b4_rhs_location(RULE-LENGTH, NUM)
# ---------------------------------
# Expansion of @NUM, where the current rule has RULE-LENGTH symbols
# on RHS.
m4_define([b4_rhs_location],
[(yylocation_stack_@{($1) - ($2)@})])
# b4_parse_param_decl
# -------------------
# Extra formal arguments of the constructor.
# Change the parameter names from "foo" into "foo_yyarg", so that
# there is no collision bw the user chosen attribute name, and the
# argument name in the constructor.
m4_define([b4_parse_param_decl],
[m4_ifset([b4_parse_param],
[m4_map_sep([b4_parse_param_decl_1], [, ], [b4_parse_param])])])
m4_define([b4_parse_param_decl_1],
[$1_yyarg])
# b4_parse_param_cons
# -------------------
# Extra initialisations of the constructor.
m4_define([b4_parse_param_cons],
[m4_ifset([b4_parse_param],
[
b4_cc_constructor_calls(b4_parse_param)])])
m4_define([b4_cc_constructor_calls],
[m4_map_sep([b4_cc_constructor_call], [,
], [$@])])
m4_define([b4_cc_constructor_call],
[$2 ($2_yyarg)])
# b4_parse_param_vars
# -------------------
# Extra instance variables.
m4_define([b4_parse_param_vars],
[m4_ifset([b4_parse_param],
[
// User arguments.
b4_cc_var_decls(b4_parse_param)])])
m4_define([b4_cc_var_decls],
[m4_map_sep([b4_cc_var_decl], [
], [$@])])
m4_define([b4_cc_var_decl],
[ $1;])
## ---------##
## Values. ##
## ---------##
# b4_yylloc_default_define
# ------------------------
# Define YYLLOC_DEFAULT.
m4_define([b4_yylloc_default_define],
[[/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
If N is 0, then set CURRENT to the empty location which ends
the previous symbol: RHS[0] (always defined). */
# ifndef YYLLOC_DEFAULT
# define YYLLOC_DEFAULT(Current, Rhs, N) \
do \
if (N) \
{ \
(Current).begin = YYRHSLOC (Rhs, 1).begin; \
(Current).end = YYRHSLOC (Rhs, N).end; \
} \
else \
{ \
(Current).begin = (Current).end = YYRHSLOC (Rhs, 0).end; \
} \
while (/*CONSTCOND*/ false)
# endif
]])
## -------- ##
## Checks. ##
## -------- ##
b4_token_ctor_if([b4_variant_if([],
[b4_fatal_at(b4_percent_define_get_loc(api.token.constructor),
[cannot use '%s' without '%s'],
[%define api.token.constructor],
[%define api.value.type variant]))])])

View File

@@ -0,0 +1,65 @@
-*- Autoconf -*-
# Common code for C-like languages (C, C++, Java, etc.)
# Copyright (C) 2012-2013 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# b4_comment_(TEXT, OPEN, CONTINUE, END)
# --------------------------------------
# Put TEXT in comment. Avoid trailing spaces: don't indent empty lines.
# Avoid adding indentation to the first line, as the indentation comes
# from OPEN. That's why we don't patsubst([$1], [^\(.\)], [ \1]).
#
# Prefix all the output lines with PREFIX.
m4_define([b4_comment_],
[$2[]m4_bpatsubst(m4_expand([[$1]]), [
\(.\)], [
$3\1])$4])
# b4_comment(TEXT, [PREFIX])
# --------------------------
# Put TEXT in comment. Prefix all the output lines with PREFIX.
m4_define([b4_comment],
[b4_comment_([$1], [$2/* ], [$2 ], [ */])])
# b4_dollar_dollar_(VALUE, FIELD, DEFAULT-FIELD)
# ----------------------------------------------
# If FIELD (or DEFAULT-FIELD) is non-null, return "VALUE.FIELD",
# otherwise just VALUE. Be sure to pass "(VALUE)" is VALUE is a
# pointer.
m4_define([b4_dollar_dollar_],
[b4_symbol_value([$1],
m4_if([$2], [[]],
[[$3]], [[$2]]))])
# b4_dollar_pushdef(VALUE-POINTER, DEFAULT-FIELD, LOCATION)
# b4_dollar_popdef
# ---------------------------------------------------------
# Define b4_dollar_dollar for VALUE and DEFAULT-FIELD,
# and b4_at_dollar for LOCATION.
m4_define([b4_dollar_pushdef],
[m4_pushdef([b4_dollar_dollar],
[b4_dollar_dollar_([$1], m4_dquote($][1), [$2])])dnl
m4_pushdef([b4_at_dollar], [$3])dnl
])
m4_define([b4_dollar_popdef],
[m4_popdef([b4_at_dollar])dnl
m4_popdef([b4_dollar_dollar])dnl
])

View File

@@ -1,7 +1,8 @@
-*- Autoconf -*-
# C skeleton dispatching for Bison.
# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
# Copyright (C) 2006-2007, 2009-2013 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by

839
gnuwin32/bin/data/c.m4 Normal file
View File

@@ -0,0 +1,839 @@
-*- Autoconf -*-
# C M4 Macros for Bison.
# Copyright (C) 2002, 2004-2013 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
m4_include(b4_pkgdatadir/[c-like.m4])
# b4_tocpp(STRING)
# ----------------
# Convert STRING into a valid C macro name.
m4_define([b4_tocpp],
[m4_toupper(m4_bpatsubst(m4_quote($1), [[^a-zA-Z0-9]+], [_]))])
# b4_cpp_guard(FILE)
# ------------------
# A valid C macro name to use as a CPP header guard for FILE.
m4_define([b4_cpp_guard],
[[YY_]b4_tocpp(m4_defn([b4_prefix])/[$1])[_INCLUDED]])
# b4_cpp_guard_open(FILE)
# b4_cpp_guard_close(FILE)
# ------------------------
# If FILE does not expand to nothing, open/close CPP inclusion guards for FILE.
m4_define([b4_cpp_guard_open],
[m4_ifval(m4_quote($1),
[#ifndef b4_cpp_guard([$1])
# define b4_cpp_guard([$1])])])
m4_define([b4_cpp_guard_close],
[m4_ifval(m4_quote($1),
[#endif b4_comment([!b4_cpp_guard([$1])])])])
## ---------------- ##
## Identification. ##
## ---------------- ##
# b4_identification
# -----------------
# Depends on individual skeletons to define b4_pure_flag, b4_push_flag, or
# b4_pull_flag if they use the values of the %define variables api.pure or
# api.push-pull.
m4_define([b4_identification],
[[/* Identify Bison output. */
#define YYBISON 1
/* Bison version. */
#define YYBISON_VERSION "]b4_version["
/* Skeleton name. */
#define YYSKELETON_NAME ]b4_skeleton[]m4_ifdef([b4_pure_flag], [[
/* Pure parsers. */
#define YYPURE ]b4_pure_flag])[]m4_ifdef([b4_push_flag], [[
/* Push parsers. */
#define YYPUSH ]b4_push_flag])[]m4_ifdef([b4_pull_flag], [[
/* Pull parsers. */
#define YYPULL ]b4_pull_flag])[
]])
## ---------------- ##
## Default values. ##
## ---------------- ##
# b4_api_prefix, b4_api_PREFIX
# ----------------------------
# Corresponds to %define api.prefix
b4_percent_define_default([[api.prefix]], [[yy]])
m4_define([b4_api_prefix],
[b4_percent_define_get([[api.prefix]])])
m4_define([b4_api_PREFIX],
[m4_toupper(b4_api_prefix)])
# b4_prefix
# ---------
# If the %name-prefix is not given, it is api.prefix.
m4_define_default([b4_prefix], [b4_api_prefix])
# If the %union is not named, its name is YYSTYPE.
m4_define_default([b4_union_name], [b4_api_PREFIX[]STYPE])
## ------------------------ ##
## Pure/impure interfaces. ##
## ------------------------ ##
# b4_lex_formals
# --------------
# All the yylex formal arguments.
# b4_lex_param arrives quoted twice, but we want to keep only one level.
m4_define([b4_lex_formals],
[b4_pure_if([[[[YYSTYPE *yylvalp]], [[&yylval]]][]dnl
b4_locations_if([, [[YYLTYPE *yyllocp], [&yylloc]]])])dnl
m4_ifdef([b4_lex_param], [, ]b4_lex_param)])
# b4_lex
# ------
# Call yylex.
m4_define([b4_lex],
[b4_function_call([yylex], [int], b4_lex_formals)])
# b4_user_args
# ------------
m4_define([b4_user_args],
[m4_ifset([b4_parse_param], [, b4_args(b4_parse_param)])])
# b4_parse_param
# --------------
# If defined, b4_parse_param arrives double quoted, but below we prefer
# it to be single quoted.
m4_define([b4_parse_param],
b4_parse_param)
# b4_parse_param_for(DECL, FORMAL, BODY)
# ---------------------------------------
# Iterate over the user parameters, binding the declaration to DECL,
# the formal name to FORMAL, and evaluating the BODY.
m4_define([b4_parse_param_for],
[m4_foreach([$1_$2], m4_defn([b4_parse_param]),
[m4_pushdef([$1], m4_unquote(m4_car($1_$2)))dnl
m4_pushdef([$2], m4_shift($1_$2))dnl
$3[]dnl
m4_popdef([$2])dnl
m4_popdef([$1])dnl
])])
# b4_parse_param_use([VAL], [LOC])
# --------------------------------
# 'YYUSE' VAL, LOC if locations are enabled, and all the parse-params.
m4_define([b4_parse_param_use],
[m4_ifvaln([$1], [ YYUSE ([$1]);])dnl
b4_locations_if([m4_ifvaln([$2], [ YYUSE ([$2]);])])dnl
b4_parse_param_for([Decl], [Formal], [ YYUSE (Formal);
])dnl
])
## ------------ ##
## Data Types. ##
## ------------ ##
# b4_int_type(MIN, MAX)
# ---------------------
# Return the smallest int type able to handle numbers ranging from
# MIN to MAX (included).
m4_define([b4_int_type],
[m4_if(b4_ints_in($@, [0], [255]), [1], [unsigned char],
b4_ints_in($@, [-128], [127]), [1], [signed char],
b4_ints_in($@, [0], [65535]), [1], [unsigned short int],
b4_ints_in($@, [-32768], [32767]), [1], [short int],
m4_eval([0 <= $1]), [1], [unsigned int],
[int])])
# b4_int_type_for(NAME)
# ---------------------
# Return the smallest int type able to handle numbers ranging from
# 'NAME_min' to 'NAME_max' (included).
m4_define([b4_int_type_for],
[b4_int_type($1_min, $1_max)])
# b4_table_value_equals(TABLE, VALUE, LITERAL)
# --------------------------------------------
# Without inducing a comparison warning from the compiler, check if the
# literal value LITERAL equals VALUE from table TABLE, which must have
# TABLE_min and TABLE_max defined.
m4_define([b4_table_value_equals],
[m4_if(m4_eval($3 < m4_indir([b4_]$1[_min])
|| m4_indir([b4_]$1[_max]) < $3), [1],
[[0]],
[(!!(($2) == ($3)))])])
## ----------------- ##
## Compiler issues. ##
## ----------------- ##
# b4_attribute_define
# -------------------
# Provide portability for __attribute__.
m4_define([b4_attribute_define],
[#ifndef __attribute__
/* This feature is available in gcc versions 2.5 and later. */
# if (! defined __GNUC__ || __GNUC__ < 2 \
|| (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
# define __attribute__(Spec) /* empty */
# endif
#endif
/* Suppress unused-variable warnings by "using" E. */
#if ! defined lint || defined __GNUC__
# define YYUSE(E) ((void) (E))
#else
# define YYUSE(E) /* empty */
#endif
#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
/* Suppress an incorrect diagnostic about yylval being uninitialized. */
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
_Pragma ("GCC diagnostic push") \
_Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
_Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
_Pragma ("GCC diagnostic pop")
#else
# define YY_INITIAL_VALUE(Value) Value
#endif
#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
# define YY_IGNORE_MAYBE_UNINITIALIZED_END
#endif
#ifndef YY_INITIAL_VALUE
# define YY_INITIAL_VALUE(Value) /* Nothing. */
#endif
])
## ---------##
## Values. ##
## ---------##
# b4_null_define
# --------------
# Portability issues: define a YY_NULL appropriate for the current
# language (C, C++98, or C++11).
m4_define([b4_null_define],
[# ifndef YY_NULL
# if defined __cplusplus && 201103L <= __cplusplus
# define YY_NULL nullptr
# else
# define YY_NULL 0
# endif
# endif[]dnl
])
# b4_null
# -------
# Return a null pointer constant.
m4_define([b4_null], [YY_NULL])
# b4_integral_parser_table_define(TABLE-NAME, CONTENT, COMMENT)
# -------------------------------------------------------------
# Define "yy<TABLE-NAME>" whose contents is CONTENT.
m4_define([b4_integral_parser_table_define],
[m4_ifvaln([$3], [b4_comment([$3], [ ])])dnl
static const b4_int_type_for([$2]) yy$1[[]] =
{
$2
};dnl
])
## ------------------------- ##
## Assigning token numbers. ##
## ------------------------- ##
# b4_token_define(TOKEN-NUM)
# --------------------------
# Output the definition of this token as #define.
m4_define([b4_token_define],
[b4_token_format([#define %s %s], [$1])])
# b4_token_defines
# ----------------
# Output the definition of the tokens.
m4_define([b4_token_defines],
[b4_any_token_visible_if([/* Tokens. */
m4_join([
], b4_symbol_map([b4_token_define]))
])])
# b4_token_enum(TOKEN-NUM)
# ------------------------
# Output the definition of this token as an enum.
m4_define([b4_token_enum],
[b4_token_format([%s = %s], [$1])])
# b4_token_enums
# --------------
# Output the definition of the tokens (if there are) as enums.
m4_define([b4_token_enums],
[b4_any_token_visible_if([[/* Token type. */
#ifndef ]b4_api_PREFIX[TOKENTYPE
# define ]b4_api_PREFIX[TOKENTYPE
enum ]b4_api_prefix[tokentype
{
]m4_join([,
],
b4_symbol_map([b4_token_enum]))[
};
#endif
]])])
# b4_token_enums_defines
# ----------------------
# Output the definition of the tokens (if there are any) as enums and,
# if POSIX Yacc is enabled, as #defines.
m4_define([b4_token_enums_defines],
[b4_token_enums[]b4_yacc_if([b4_token_defines])])
## ----------------- ##
## Semantic Values. ##
## ----------------- ##
# b4_symbol_value(VAL, [TYPE])
# ----------------------------
# Given a semantic value VAL ($$, $1 etc.), extract its value of type
# TYPE if TYPE is given, otherwise just return VAL. The result can be
# used safetly, it is put in parens to avoid nasty precedence issues.
# TYPE is *not* put in braces, provide some if needed.
m4_define([b4_symbol_value],
[($1[]m4_ifval([$2], [.$2]))])
## ---------------------- ##
## Defining C functions. ##
## ---------------------- ##
# b4_function_define(NAME, RETURN-VALUE, [DECL1, NAME1], ...)
# -----------------------------------------------------------
# Declare the function NAME in C.
m4_define([b4_function_define],
[$2
$1 (b4_formals(m4_shift2($@)))[]dnl
])
# b4_formals([DECL1, NAME1], ...)
# -------------------------------
# The formal arguments of a C function definition.
m4_define([b4_formals],
[m4_if([$#], [0], [void],
[$#$1], [1], [void],
[m4_map_sep([b4_formal], [, ], [$@])])])
m4_define([b4_formal],
[$1])
## ----------------------- ##
## Declaring C functions. ##
## ----------------------- ##
# b4_function_declare(NAME, RETURN-VALUE, [DECL1, NAME1], ...)
# ------------------------------------------------------------
# Declare the function NAME.
m4_define([b4_function_declare],
[$2 $1 (b4_formals(m4_shift2($@)));[]dnl
])
## --------------------- ##
## Calling C functions. ##
## --------------------- ##
# b4_function_call(NAME, RETURN-VALUE, [DECL1, NAME1], ...)
# -----------------------------------------------------------
# Call the function NAME with arguments NAME1, NAME2 etc.
m4_define([b4_function_call],
[$1 (b4_args(m4_shift2($@)))[]dnl
])
# b4_args([DECL1, NAME1], ...)
# ----------------------------
# Output the arguments NAME1, NAME2...
m4_define([b4_args],
[m4_map_sep([b4_arg], [, ], [$@])])
m4_define([b4_arg],
[$2])
## ----------- ##
## Synclines. ##
## ----------- ##
# b4_sync_start(LINE, FILE)
# -------------------------
m4_define([b4_sync_start], [[#]line $1 $2])
## -------------- ##
## User actions. ##
## -------------- ##
# b4_case(LABEL, STATEMENTS)
# --------------------------
m4_define([b4_case],
[ case $1:
$2
b4_syncline([@oline@], [@ofile@])
break;])
# b4_predicate_case(LABEL, CONDITIONS)
# ------------------------------------
m4_define([b4_predicate_case],
[ case $1:
if (! ($2)) YYERROR;
b4_syncline([@oline@], [@ofile@])
break;])
# b4_yydestruct_define
# --------------------
# Define the "yydestruct" function.
m4_define_default([b4_yydestruct_define],
[[/*-----------------------------------------------.
| Release the memory associated to this symbol. |
`-----------------------------------------------*/
]b4_function_define([yydestruct],
[static void],
[[const char *yymsg], [yymsg]],
[[int yytype], [yytype]],
[[YYSTYPE *yyvaluep], [yyvaluep]][]dnl
b4_locations_if( [, [[YYLTYPE *yylocationp], [yylocationp]]])[]dnl
m4_ifset([b4_parse_param], [, b4_parse_param]))[
{
]b4_parse_param_use([yyvaluep], [yylocationp])dnl
[ if (!yymsg)
yymsg = "Deleting";
YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
]b4_symbol_actions([destructor])[
YY_IGNORE_MAYBE_UNINITIALIZED_END
}]dnl
])
# b4_yy_symbol_print_define
# -------------------------
# Define the "yy_symbol_print" function.
m4_define_default([b4_yy_symbol_print_define],
[[
/*----------------------------------------.
| Print this symbol's value on YYOUTPUT. |
`----------------------------------------*/
]b4_function_define([yy_symbol_value_print],
[static void],
[[FILE *yyoutput], [yyoutput]],
[[int yytype], [yytype]],
[[YYSTYPE const * const yyvaluep], [yyvaluep]][]dnl
b4_locations_if([, [[YYLTYPE const * const yylocationp], [yylocationp]]])[]dnl
m4_ifset([b4_parse_param], [, b4_parse_param]))[
{
FILE *yyo = yyoutput;
]b4_parse_param_use([yyo], [yylocationp])dnl
[ if (!yyvaluep)
return;]
dnl glr.c does not feature yytoknum.
m4_if(b4_skeleton, ["yacc.c"],
[[# ifdef YYPRINT
if (yytype < YYNTOKENS)
YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
# endif
]])dnl
b4_symbol_actions([printer])[
}
/*--------------------------------.
| Print this symbol on YYOUTPUT. |
`--------------------------------*/
]b4_function_define([yy_symbol_print],
[static void],
[[FILE *yyoutput], [yyoutput]],
[[int yytype], [yytype]],
[[YYSTYPE const * const yyvaluep], [yyvaluep]][]dnl
b4_locations_if([, [[YYLTYPE const * const yylocationp], [yylocationp]]])[]dnl
m4_ifset([b4_parse_param], [, b4_parse_param]))[
{
YYFPRINTF (yyoutput, "%s %s (",
yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
]b4_locations_if([ YY_LOCATION_PRINT (yyoutput, *yylocationp);
YYFPRINTF (yyoutput, ": ");
])dnl
[ yy_symbol_value_print (yyoutput, yytype, yyvaluep]dnl
b4_locations_if([, yylocationp])[]b4_user_args[);
YYFPRINTF (yyoutput, ")");
}]dnl
])
## ---------------- ##
## api.value.type. ##
## ---------------- ##
# ---------------------- #
# api.value.type=union. #
# ---------------------- #
# b4_symbol_type_register(SYMBOL-NUM)
# -----------------------------------
# Symbol SYMBOL-NUM has a type (for variant) instead of a type-tag.
# Extend the definition of %union's body with a field of that type,
# and extend the symbol's "type" field to point to the field name,
# instead of the type name.
m4_define([b4_symbol_type_register],
[m4_define([b4_symbol($1, type_tag)],
[b4_symbol_if([$1], [has_id],
[b4_symbol([$1], [id])],
[yytype_[]b4_symbol([$1], [number])])])dnl
m4_append([b4_user_union_members],
m4_expand([
b4_symbol_tag_comment([$1])dnl
b4_symbol([$1], [type]) b4_symbol([$1], [type_tag]);]))
])
# b4_type_define_tag(SYMBOL1-NUM, ...)
# ------------------------------------
# For the batch of symbols SYMBOL1-NUM... (which all have the same
# type), enhance the %union definition for each of them, and set
# there "type" field to the field tag name, instead of the type name.
m4_define([b4_type_define_tag],
[b4_symbol_if([$1], [has_type],
[m4_map([b4_symbol_type_register], [$@])])
])
# b4_symbol_value_union(VAL, [TYPE])
# ----------------------------------
# Same of b4_symbol_value, but when api.value.type=union.
m4_define([b4_symbol_value_union],
[m4_ifval([$2],
[(*($2*)(&$1))],
[$1])])
])
# b4_value_type_setup_union
# -------------------------
# Setup support for api.value.type=union. Symbols are defined with a
# type instead of a union member name: build the corresponding union,
# and give the symbols their tag.
m4_define([b4_value_type_setup_union],
[m4_define([b4_union_members])
b4_type_foreach([b4_type_define_tag])
m4_copy_force([b4_symbol_value_union], [b4_symbol_value])
])
# ---------------- #
# api.value.type. #
# ---------------- #
# b4_value_type_setup_variant
# ---------------------------
# Setup support for api.value.type=variant. By default, fail, specialized
# by other skeletons.
m4_define([b4_value_type_setup_variant],
[b4_complain_at(b4_percent_define_get_loc([[api.value.type]]),
[['%s' does not support '%s']],
[b4_skeleton],
[%define api.value.type variant])])
# _b4_value_type_setup_keyword
# ----------------------------
# api.value.type is defined with a keyword/string syntax. Check if
# that is properly defined, and prepare its use.
m4_define([_b4_value_type_setup_keyword],
[b4_percent_define_check_values([[[[api.value.type]],
[[none]],
[[union]],
[[union-directive]],
[[variant]],
[[yystype]]]])dnl
m4_case(b4_percent_define_get([[api.value.type]]),
[union], [b4_value_type_setup_union],
[variant], [b4_value_type_setup_variant])])
# b4_value_type_setup
# -------------------
# Check if api.value.type is properly defined, and possibly prepare
# its use.
b4_define_silent([b4_value_type_setup],
[# Define default value.
b4_percent_define_ifdef([[api.value.type]], [],
[# %union => api.value.type=union-directive
m4_ifdef([b4_union_members],
[m4_define([b4_percent_define_kind(api.value.type)], [keyword])
m4_define([b4_percent_define(api.value.type)], [union-directive])],
[# no tag seen => api.value.type={int}
m4_if(b4_tag_seen_flag, 0,
[m4_define([b4_percent_define_kind(api.value.type)], [code])
m4_define([b4_percent_define(api.value.type)], [int])],
[# otherwise api.value.type=yystype
m4_define([b4_percent_define_kind(api.value.type)], [keyword])
m4_define([b4_percent_define(api.value.type)], [yystype])])])])
# Set up.
m4_bmatch(b4_percent_define_get_kind([[api.value.type]]),
[keyword\|string], [_b4_value_type_setup_keyword])
])
## -------------- ##
## Declarations. ##
## -------------- ##
# b4_value_type_define
# --------------------
m4_define([b4_value_type_define],
[b4_value_type_setup[]dnl
/* Value type. */
m4_bmatch(b4_percent_define_get_kind([[api.value.type]]),
[code],
[[#if ! defined ]b4_api_PREFIX[STYPE && ! defined ]b4_api_PREFIX[STYPE_IS_DECLARED
typedef ]b4_percent_define_get([[api.value.type]])[ ]b4_api_PREFIX[STYPE;
# define ]b4_api_PREFIX[STYPE_IS_TRIVIAL 1
# define ]b4_api_PREFIX[STYPE_IS_DECLARED 1
#endif
]],
[m4_bmatch(b4_percent_define_get([[api.value.type]]),
[union\|union-directive],
[[#if ! defined ]b4_api_PREFIX[STYPE && ! defined ]b4_api_PREFIX[STYPE_IS_DECLARED
typedef union ]b4_union_name[ ]b4_api_PREFIX[STYPE;
union ]b4_union_name[
{
]b4_user_union_members[
};
# define ]b4_api_PREFIX[STYPE_IS_TRIVIAL 1
# define ]b4_api_PREFIX[STYPE_IS_DECLARED 1
#endif
]])])])
# b4_location_type_define
# -----------------------
m4_define([b4_location_type_define],
[[/* Location type. */
#if ! defined ]b4_api_PREFIX[LTYPE && ! defined ]b4_api_PREFIX[LTYPE_IS_DECLARED
typedef struct ]b4_api_PREFIX[LTYPE ]b4_api_PREFIX[LTYPE;
struct ]b4_api_PREFIX[LTYPE
{
int first_line;
int first_column;
int last_line;
int last_column;
};
# define ]b4_api_PREFIX[LTYPE_IS_DECLARED 1
# define ]b4_api_PREFIX[LTYPE_IS_TRIVIAL 1
#endif
]])
# b4_declare_yylstype
# -------------------
# Declarations that might either go into the header (if --defines) or
# in the parser body. Declare YYSTYPE/YYLTYPE, and yylval/yylloc.
m4_define([b4_declare_yylstype],
[b4_value_type_define[]b4_locations_if([
b4_location_type_define])
b4_pure_if([], [[extern ]b4_api_PREFIX[STYPE ]b4_prefix[lval;
]b4_locations_if([[extern ]b4_api_PREFIX[LTYPE ]b4_prefix[lloc;]])])[]dnl
])
# b4_YYDEBUG_define
# -----------------
m4_define([b4_YYDEBUG_define],
[[/* Debug traces. */
]m4_if(b4_api_prefix, [yy],
[[#ifndef YYDEBUG
# define YYDEBUG ]b4_parse_trace_if([1], [0])[
#endif]],
[[#ifndef ]b4_api_PREFIX[DEBUG
# if defined YYDEBUG
#if YYDEBUG
# define ]b4_api_PREFIX[DEBUG 1
# else
# define ]b4_api_PREFIX[DEBUG 0
# endif
# else /* ! defined YYDEBUG */
# define ]b4_api_PREFIX[DEBUG ]b4_parse_trace_if([1], [0])[
# endif /* ! defined YYDEBUG */
#endif /* ! defined ]b4_api_PREFIX[DEBUG */]])[]dnl
])
# b4_declare_yydebug
# ------------------
m4_define([b4_declare_yydebug],
[b4_YYDEBUG_define[
#if ]b4_api_PREFIX[DEBUG
extern int ]b4_prefix[debug;
#endif][]dnl
])
# b4_yylloc_default_define
# ------------------------
# Define YYLLOC_DEFAULT.
m4_define([b4_yylloc_default_define],
[[/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
If N is 0, then set CURRENT to the empty location which ends
the previous symbol: RHS[0] (always defined). */
#ifndef YYLLOC_DEFAULT
# define YYLLOC_DEFAULT(Current, Rhs, N) \
do \
if (N) \
{ \
(Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
(Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
(Current).last_line = YYRHSLOC (Rhs, N).last_line; \
(Current).last_column = YYRHSLOC (Rhs, N).last_column; \
} \
else \
{ \
(Current).first_line = (Current).last_line = \
YYRHSLOC (Rhs, 0).last_line; \
(Current).first_column = (Current).last_column = \
YYRHSLOC (Rhs, 0).last_column; \
} \
while (0)
#endif
]])
# b4_yy_location_print_define
# ---------------------------
# Define YY_LOCATION_PRINT.
m4_define([b4_yy_location_print_define],
[b4_locations_if([[
/* YY_LOCATION_PRINT -- Print the location on the stream.
This macro was not mandated originally: define only if we know
we won't break user code: when these are the locations we know. */
#ifndef YY_LOCATION_PRINT
# if defined ]b4_api_PREFIX[LTYPE_IS_TRIVIAL && ]b4_api_PREFIX[LTYPE_IS_TRIVIAL
/* Print *YYLOCP on YYO. Private, do not rely on its existence. */
__attribute__((__unused__))
]b4_function_define([yy_location_print_],
[static unsigned],
[[FILE *yyo], [yyo]],
[[YYLTYPE const * const yylocp], [yylocp]])[
{
unsigned res = 0;
int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0;
if (0 <= yylocp->first_line)
{
res += YYFPRINTF (yyo, "%d", yylocp->first_line);
if (0 <= yylocp->first_column)
res += YYFPRINTF (yyo, ".%d", yylocp->first_column);
}
if (0 <= yylocp->last_line)
{
if (yylocp->first_line < yylocp->last_line)
{
res += YYFPRINTF (yyo, "-%d", yylocp->last_line);
if (0 <= end_col)
res += YYFPRINTF (yyo, ".%d", end_col);
}
else if (0 <= end_col && yylocp->first_column < end_col)
res += YYFPRINTF (yyo, "-%d", end_col);
}
return res;
}
# define YY_LOCATION_PRINT(File, Loc) \
yy_location_print_ (File, &(Loc))
# else
# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
# endif
#endif]],
[[/* This macro is provided for backward compatibility. */
#ifndef YY_LOCATION_PRINT
# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
#endif]])
])
# b4_yyloc_default
# ----------------
# Expand to a possible default value for yylloc.
m4_define([b4_yyloc_default],
[[
# if defined ]b4_api_PREFIX[LTYPE_IS_TRIVIAL && ]b4_api_PREFIX[LTYPE_IS_TRIVIAL
= { ]m4_join([, ],
m4_defn([b4_location_initial_line]),
m4_defn([b4_location_initial_column]),
m4_defn([b4_location_initial_line]),
m4_defn([b4_location_initial_column]))[ }
# endif
]])

2563
gnuwin32/bin/data/glr.c Normal file

File diff suppressed because it is too large Load Diff

345
gnuwin32/bin/data/glr.cc Normal file
View File

@@ -0,0 +1,345 @@
# C++ GLR skeleton for Bison
# Copyright (C) 2002-2013 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# This skeleton produces a C++ class that encapsulates a C glr parser.
# This is in order to reduce the maintenance burden. The glr.c
# skeleton is clean and pure enough so that there are no real
# problems. The C++ interface is the same as that of lalr1.cc. In
# fact, glr.c can replace yacc.c without the user noticing any
# difference, and similarly for glr.cc replacing lalr1.cc.
#
# The passing of parse-params
#
# The additional arguments are stored as members of the parser
# object, yyparser. The C routines need to carry yyparser
# throughout the C parser; that's easy: make yyparser an
# additional parse-param. But because the C++ skeleton needs to
# know the "real" original parse-param, we save them
# (b4_parse_param_orig). Note that b4_parse_param is overquoted
# (and c.m4 strips one level of quotes). This is a PITA, and
# explains why there are so many levels of quotes.
#
# The locations
#
# We use location.cc just like lalr1.cc, but because glr.c stores
# the locations in a union, the position and location classes
# must not have a constructor. Therefore, contrary to lalr1.cc, we
# must not define "b4_location_constructors". As a consequence the
# user must initialize the first positions (in particular the
# filename member).
# We require a pure interface.
m4_define([b4_pure_flag], [1])
m4_include(b4_pkgdatadir/[c++.m4])
b4_bison_locations_if([m4_include(b4_pkgdatadir/[location.cc])])
m4_define([b4_parser_class_name],
[b4_percent_define_get([[parser_class_name]])])
# Save the parse parameters.
m4_define([b4_parse_param_orig], m4_defn([b4_parse_param]))
# b4_parse_param_wrap
# -------------------
# New ones.
m4_ifset([b4_parse_param],
[m4_define([b4_parse_param_wrap],
[[b4_namespace_ref::b4_parser_class_name[& yyparser], [[yyparser]]],]
m4_defn([b4_parse_param]))],
[m4_define([b4_parse_param_wrap],
[[b4_namespace_ref::b4_parser_class_name[& yyparser], [[yyparser]]]])
])
# b4_yy_symbol_print_define
# -------------------------
# Bypass the default implementation to generate the "yy_symbol_print"
# and "yy_symbol_value_print" functions.
m4_define([b4_yy_symbol_print_define],
[[
/*--------------------.
| Print this symbol. |
`--------------------*/
]b4_function_define([yy_symbol_print],
[static void],
[[FILE *], []],
[[int yytype], [yytype]],
[[const ]b4_namespace_ref::b4_parser_class_name[::semantic_type *yyvaluep],
[yyvaluep]][]dnl
b4_locations_if([,
[[const ]b4_namespace_ref::b4_parser_class_name[::location_type *yylocationp],
[yylocationp]]]),
b4_parse_param)[
{
]b4_parse_param_use[]dnl
[ yyparser.yy_symbol_print_ (yytype, yyvaluep]b4_locations_if([, yylocationp])[);
}
]])[
# Hijack the initial action to initialize the locations.
]b4_bison_locations_if([m4_define([b4_initial_action],
[yylloc.initialize ();]m4_ifdef([b4_initial_action], [
m4_defn([b4_initial_action])]))])[
# Hijack the post prologue to insert early definition of YYLLOC_DEFAULT
# and declaration of yyerror.
]m4_append([b4_post_prologue],
[b4_syncline([@oline@], [@ofile@])[
]b4_yylloc_default_define[
#define YYRHSLOC(Rhs, K) ((Rhs)[K].yystate.yyloc)
]b4_function_declare([yyerror],
[static void],b4_locations_if([
[[const ]b4_namespace_ref::b4_parser_class_name[::location_type *yylocationp],
[yylocationp]],])
b4_parse_param,
[[const char* msg], [msg]])])
#undef yynerrs
#undef yychar
#undef yylval]b4_locations_if([
#undef yylloc])
m4_if(b4_prefix, [yy], [],
[[/* Substitute the variable and function names. */
#define yyparse ]b4_prefix[parse
#define yylex ]b4_prefix[lex
#define yyerror ]b4_prefix[error
#define yydebug ]b4_prefix[debug
]]b4_pure_if([], [[
#define yylval ]b4_prefix[lval
#define yychar ]b4_prefix[char
#define yynerrs ]b4_prefix[nerrs]b4_locations_if([[
#define yylloc ]b4_prefix[lloc]])]))
# Hijack the epilogue to define implementations (yyerror, parser member
# functions etc.).
m4_append([b4_epilogue],
[b4_syncline([@oline@], [@ofile@])[
/*------------------.
| Report an error. |
`------------------*/
]b4_function_define([yyerror],
[static void],b4_locations_if([
[[const ]b4_namespace_ref::b4_parser_class_name[::location_type *yylocationp],
[yylocationp]],])
b4_parse_param,
[[const char* msg], [msg]])[
{
]b4_parse_param_use[]dnl
[ yyparser.error (]b4_locations_if([[*yylocationp, ]])[msg);
}
]b4_namespace_open[
]dnl In this section, the parse params are the original parse_params.
m4_pushdef([b4_parse_param], m4_defn([b4_parse_param_orig]))dnl
[ /// Build a parser object.
]b4_parser_class_name::b4_parser_class_name[ (]b4_parse_param_decl[)]m4_ifset([b4_parse_param], [
:])[
#if ]b4_api_PREFIX[DEBUG
]m4_ifset([b4_parse_param], [ ], [ :])[yycdebug_ (&std::cerr)]m4_ifset([b4_parse_param], [,])[
#endif]b4_parse_param_cons[
{
}
]b4_parser_class_name::~b4_parser_class_name[ ()
{
}
int
]b4_parser_class_name[::parse ()
{
return ::yyparse (*this]b4_user_args[);
}
#if ]b4_api_PREFIX[DEBUG
/*--------------------.
| Print this symbol. |
`--------------------*/
inline void
]b4_parser_class_name[::yy_symbol_value_print_ (int yytype,
const semantic_type* yyvaluep]b4_locations_if([[,
const location_type* yylocationp]])[)
{]b4_locations_if([[
YYUSE (yylocationp);]])[
YYUSE (yyvaluep);
std::ostream& yyoutput = debug_stream ();
std::ostream& yyo = yyoutput;
YYUSE (yyo);
]b4_symbol_actions([printer])[
}
void
]b4_parser_class_name[::yy_symbol_print_ (int yytype,
const semantic_type* yyvaluep]b4_locations_if([[,
const location_type* yylocationp]])[)
{
*yycdebug_ << (yytype < YYNTOKENS ? "token" : "nterm")
<< ' ' << yytname[yytype] << " ("]b4_locations_if([[
<< *yylocationp << ": "]])[;
yy_symbol_value_print_ (yytype, yyvaluep]b4_locations_if([[, yylocationp]])[);
*yycdebug_ << ')';
}
std::ostream&
]b4_parser_class_name[::debug_stream () const
{
return *yycdebug_;
}
void
]b4_parser_class_name[::set_debug_stream (std::ostream& o)
{
yycdebug_ = &o;
}
]b4_parser_class_name[::debug_level_type
]b4_parser_class_name[::debug_level () const
{
return yydebug;
}
void
]b4_parser_class_name[::set_debug_level (debug_level_type l)
{
// Actually, it is yydebug which is really used.
yydebug = l;
}
#endif
]m4_popdef([b4_parse_param])dnl
b4_namespace_close
])
# b4_shared_declarations
# ----------------------
# Declaration that might either go into the header (if --defines)
# or open coded in the parser body.
m4_define([b4_shared_declarations],
[m4_pushdef([b4_parse_param], m4_defn([b4_parse_param_orig]))dnl
b4_percent_code_get([[requires]])[
#include <stdexcept>
#include <string>
#include <iostream>]b4_defines_if([
b4_bison_locations_if([[#include "location.hh"]])])[
]b4_YYDEBUG_define[
]b4_namespace_open[
]b4_defines_if([],
[b4_bison_locations_if([b4_position_define
b4_location_define])])[
/// A Bison parser.
class ]b4_parser_class_name[
{
public:
]b4_public_types_declare[
/// Build a parser object.
]b4_parser_class_name[ (]b4_parse_param_decl[);
virtual ~]b4_parser_class_name[ ();
/// Parse.
/// \returns 0 iff parsing succeeded.
virtual int parse ();
/// The current debugging stream.
std::ostream& debug_stream () const;
/// Set the current debugging stream.
void set_debug_stream (std::ostream &);
/// Type for debugging levels.
typedef int debug_level_type;
/// The current debugging level.
debug_level_type debug_level () const;
/// Set the current debugging level.
void set_debug_level (debug_level_type l);
public:
/// Report a syntax error.]b4_locations_if([[
/// \param loc where the syntax error is found.]])[
/// \param msg a description of the syntax error.
virtual void error (]b4_locations_if([[const location_type& loc, ]])[const std::string& msg);
# if ]b4_api_PREFIX[DEBUG
public:
/// \brief Report a symbol value on the debug stream.
/// \param yytype The token type.
/// \param yyvaluep Its semantic value.]b4_locations_if([[
/// \param yylocationp Its location.]])[
virtual void yy_symbol_value_print_ (int yytype,
const semantic_type* yyvaluep]b4_locations_if([[,
const location_type* yylocationp]])[);
/// \brief Report a symbol on the debug stream.
/// \param yytype The token type.
/// \param yyvaluep Its semantic value.]b4_locations_if([[
/// \param yylocationp Its location.]])[
virtual void yy_symbol_print_ (int yytype,
const semantic_type* yyvaluep]b4_locations_if([[,
const location_type* yylocationp]])[);
private:
// Debugging.
std::ostream* yycdebug_;
#endif
]b4_parse_param_vars[
};
]dnl Redirections for glr.c.
b4_percent_define_flag_if([[global_tokens_and_yystype]],
[b4_token_defines])
[
#ifndef ]b4_api_PREFIX[STYPE
# define ]b4_api_PREFIX[STYPE ]b4_namespace_ref[::]b4_parser_class_name[::semantic_type
#endif
#ifndef ]b4_api_PREFIX[LTYPE
# define ]b4_api_PREFIX[LTYPE ]b4_namespace_ref[::]b4_parser_class_name[::location_type
#endif
]b4_namespace_close[
]b4_percent_code_get([[provides]])[
]m4_popdef([b4_parse_param])dnl
])
b4_defines_if(
[b4_output_begin([b4_spec_defines_file])
b4_copyright([Skeleton interface for Bison GLR parsers in C++],
[2002-2013])[
// C++ GLR parser skeleton written by Akim Demaille.
]b4_cpp_guard_open([b4_spec_defines_file])[
]b4_shared_declarations[
]b4_cpp_guard_close([b4_spec_defines_file])[
]b4_output_end()])
# Let glr.c (and b4_shared_declarations) believe that the user
# arguments include the parser itself.
m4_pushdef([b4_parse_param], m4_defn([b4_parse_param_wrap]))
m4_include(b4_pkgdatadir/[glr.c])
m4_popdef([b4_parse_param])

View File

@@ -1,7 +1,8 @@
-*- Autoconf -*-
# Java skeleton dispatching for Bison.
# Copyright (C) 2007 Free Software Foundation, Inc.
# Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by

View File

@@ -2,7 +2,7 @@
# Java language support for Bison
# Copyright (C) 2007, 2008 Free Software Foundation, Inc.
# Copyright (C) 2007-2013 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -17,19 +17,14 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# b4_comment(TEXT)
# ----------------
m4_define([b4_comment], [/* m4_bpatsubst([$1], [
], [
]) */])
m4_include(b4_pkgdatadir/[c-like.m4])
# b4_list2(LIST1, LIST2)
# --------------------------
# ----------------------
# Join two lists with a comma if necessary.
m4_define([b4_list2],
[$1[]m4_ifval(m4_quote($1), [m4_ifval(m4_quote($2), [[, ]])])[]$2])
[$1[]m4_ifval(m4_quote($1), [m4_ifval(m4_quote($2), [[, ]])])[]$2])
# b4_percent_define_get3(DEF, PRE, POST, NOT)
@@ -37,8 +32,8 @@ m4_define([b4_list2],
# Expand to the value of DEF surrounded by PRE and POST if it's %define'ed,
# otherwise NOT.
m4_define([b4_percent_define_get3],
[m4_ifval(m4_quote(b4_percent_define_get([$1])),
[$2[]b4_percent_define_get([$1])[]$3], [$4])])
[m4_ifval(m4_quote(b4_percent_define_get([$1])),
[$2[]b4_percent_define_get([$1])[]$3], [$4])])
@@ -103,12 +98,12 @@ m4_define([b4_identification],
m4_define([b4_int_type],
[m4_if(b4_ints_in($@, [-128], [127]), [1], [byte],
b4_ints_in($@, [-32768], [32767]), [1], [short],
[int])])
[int])])
# b4_int_type_for(NAME)
# ---------------------
# Return the smallest int type able to handle numbers ranging from
# `NAME_min' to `NAME_max' (included).
# 'NAME_min' to 'NAME_max' (included).
m4_define([b4_int_type_for],
[b4_int_type($1_min, $1_max)])
@@ -117,27 +112,45 @@ m4_define([b4_int_type_for],
m4_define([b4_null], [null])
# b4_typed_parser_table_define(TYPE, NAME, DATA, COMMENT)
# -------------------------------------------------------
m4_define([b4_typed_parser_table_define],
[m4_ifval([$4], [b4_comment([$4])
])dnl
[private static final ]$1[ yy$2_[] = yy$2_init();
private static final ]$1[[] yy$2_init()
{
return new ]$1[[]
{
]$3[
};
}]])
# b4_integral_parser_table_define(NAME, DATA, COMMENT)
#-----------------------------------------------------
m4_define([b4_integral_parser_table_define],
[b4_typed_parser_table_define([b4_int_type_for([$2])], [$1], [$2], [$3])])
## ------------------------- ##
## Assigning token numbers. ##
## ------------------------- ##
# b4_token_enum(TOKEN-NAME, TOKEN-NUMBER)
# ---------------------------------------
# b4_token_enum(TOKEN-NUM)
# ------------------------
# Output the definition of this token as an enum.
m4_define([b4_token_enum],
[ /** Token number, to be returned by the scanner. */
public static final int $1 = $2;
])
[b4_token_format([ /** Token number, to be returned by the scanner. */
static final int %s = %s;
], [$1])])
# b4_token_enums(LIST-OF-PAIRS-TOKEN-NAME-TOKEN-NUMBER)
# -----------------------------------------------------
# b4_token_enums
# --------------
# Output the definition of the tokens (if there are) as enums.
m4_define([b4_token_enums],
[m4_if([$#$1], [1], [],
[/* Tokens. */
m4_map([b4_token_enum], [$@])])
])
[b4_any_token_visible_if([/* Tokens. */
b4_symbol_foreach([b4_token_enum])])])
# b4-case(ID, CODE)
# -----------------
@@ -148,31 +161,57 @@ m4_define([b4_case], [ case $1:
break;
])
# b4_predicate_case(LABEL, CONDITIONS)
# ------------------------------------
m4_define([b4_predicate_case], [ case $1:
if (! ($2)) YYERROR;
break;
])
## -------- ##
## Checks. ##
## -------- ##
b4_percent_define_check_kind([[api.value.type]], [code], [deprecated])
b4_percent_define_check_kind([[annotations]], [code], [deprecated])
b4_percent_define_check_kind([[extends]], [code], [deprecated])
b4_percent_define_check_kind([[implements]], [code], [deprecated])
b4_percent_define_check_kind([[init_throws]], [code], [deprecated])
b4_percent_define_check_kind([[lex_throws]], [code], [deprecated])
b4_percent_define_check_kind([[parser_class_name]], [code], [deprecated])
b4_percent_define_check_kind([[throws]], [code], [deprecated])
## ---------------- ##
## Default values. ##
## ---------------- ##
m4_define([b4_yystype], [b4_percent_define_get([[stype]])])
b4_percent_define_default([[stype]], [[Object]])])
m4_define([b4_yystype], [b4_percent_define_get([[api.value.type]])])
b4_percent_define_default([[api.value.type]], [[Object]])
# %name-prefix
m4_define_default([b4_prefix], [[YY]])
b4_percent_define_default([[parser_class_name]], [b4_prefix[]Parser])])
b4_percent_define_default([[parser_class_name]], [b4_prefix[]Parser])
m4_define([b4_parser_class_name], [b4_percent_define_get([[parser_class_name]])])
b4_percent_define_default([[lex_throws]], [[java.io.IOException]])])
b4_percent_define_default([[lex_throws]], [[java.io.IOException]])
m4_define([b4_lex_throws], [b4_percent_define_get([[lex_throws]])])
b4_percent_define_default([[throws]], [])])
b4_percent_define_default([[throws]], [])
m4_define([b4_throws], [b4_percent_define_get([[throws]])])
b4_percent_define_default([[location_type]], [Location])])
m4_define([b4_location_type], [b4_percent_define_get([[location_type]])])
b4_percent_define_default([[init_throws]], [])
m4_define([b4_init_throws], [b4_percent_define_get([[init_throws]])])
b4_percent_define_default([[position_type]], [Position])])
m4_define([b4_position_type], [b4_percent_define_get([[position_type]])])
b4_percent_define_default([[api.location.type]], [Location])
m4_define([b4_location_type], [b4_percent_define_get([[api.location.type]])])
b4_percent_define_default([[api.position.type]], [Position])
m4_define([b4_position_type], [b4_percent_define_get([[api.position.type]])])
## ----------------- ##
@@ -218,21 +257,21 @@ m4_define([b4_rhs_location],
# it to be single quoted. Same for b4_parse_param.
# TODO: should be in bison.m4
m4_define_default([b4_lex_param], [[]]))
m4_define([b4_lex_param], b4_lex_param))
m4_define([b4_parse_param], b4_parse_param))
m4_define_default([b4_lex_param], [[]])
m4_define([b4_lex_param], b4_lex_param)
m4_define([b4_parse_param], b4_parse_param)
# b4_lex_param_decl
# -------------------
# -----------------
# Extra formal arguments of the constructor.
m4_define([b4_lex_param_decl],
[m4_ifset([b4_lex_param],
[b4_remove_comma([$1],
b4_param_decls(b4_lex_param))],
[$1])])
b4_param_decls(b4_lex_param))],
[$1])])
m4_define([b4_param_decls],
[m4_map([b4_param_decl], [$@])])
[m4_map([b4_param_decl], [$@])])
m4_define([b4_param_decl], [, $1])
m4_define([b4_remove_comma], [m4_ifval(m4_quote($1), [$1, ], [])m4_shift2($@)])
@@ -245,21 +284,21 @@ m4_define([b4_remove_comma], [m4_ifval(m4_quote($1), [$1, ], [])m4_shift2($@)])
m4_define([b4_parse_param_decl],
[m4_ifset([b4_parse_param],
[b4_remove_comma([$1],
b4_param_decls(b4_parse_param))],
[$1])])
b4_param_decls(b4_parse_param))],
[$1])])
# b4_lex_param_call
# -------------------
# -----------------
# Delegating the lexer parameters to the lexer constructor.
m4_define([b4_lex_param_call],
[m4_ifset([b4_lex_param],
[b4_remove_comma([$1],
b4_param_calls(b4_lex_param))],
[$1])])
[b4_remove_comma([$1],
b4_param_calls(b4_lex_param))],
[$1])])
m4_define([b4_param_calls],
[m4_map([b4_param_call], [$@])])
[m4_map([b4_param_call], [$@])])
m4_define([b4_param_call], [, $2])
@@ -269,13 +308,13 @@ m4_define([b4_param_call], [, $2])
# Extra initialisations of the constructor.
m4_define([b4_parse_param_cons],
[m4_ifset([b4_parse_param],
[b4_constructor_calls(b4_parse_param)])])
[b4_constructor_calls(b4_parse_param)])])
m4_define([b4_constructor_calls],
[m4_map([b4_constructor_call], [$@])])
[m4_map([b4_constructor_call], [$@])])
m4_define([b4_constructor_call],
[this.$2 = $2;
])
[this.$2 = $2;
])
@@ -284,15 +323,15 @@ m4_define([b4_constructor_call],
# Extra instance variables.
m4_define([b4_parse_param_vars],
[m4_ifset([b4_parse_param],
[
[
/* User arguments. */
b4_var_decls(b4_parse_param)])])
m4_define([b4_var_decls],
[m4_map_sep([b4_var_decl], [
[m4_map_sep([b4_var_decl], [
], [$@])])
m4_define([b4_var_decl],
[ protected final $1;])
[ protected final $1;])
@@ -300,4 +339,4 @@ m4_define([b4_var_decl],
# -----------------------
# Expand to either an empty string or "throws THROWS".
m4_define([b4_maybe_throws],
[m4_ifval($1, [throws $1])])
[m4_ifval($1, [throws $1])])

1161
gnuwin32/bin/data/lalr1.cc Normal file

File diff suppressed because it is too large Load Diff

1065
gnuwin32/bin/data/lalr1.java Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,45 @@
## Copyright (C) 2002, 2005-2013 Free Software Foundation, Inc.
## This program is free software: you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation, either version 3 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
dist_pkgdata_DATA = \
data/README \
data/bison.m4 \
data/c++-skel.m4 \
data/c++.m4 \
data/c-like.m4 \
data/c-skel.m4 \
data/c.m4 \
data/glr.c \
data/glr.cc \
data/java-skel.m4 \
data/java.m4 \
data/lalr1.cc \
data/lalr1.java \
data/location.cc \
data/stack.hh \
data/variant.hh \
data/yacc.c
m4sugardir = $(pkgdatadir)/m4sugar
dist_m4sugar_DATA = \
data/m4sugar/foreach.m4 \
data/m4sugar/m4sugar.m4
xsltdir = $(pkgdatadir)/xslt
dist_xslt_DATA = \
data/xslt/bison.xsl \
data/xslt/xml2dot.xsl \
data/xslt/xml2text.xsl \
data/xslt/xml2xhtml.xsl

View File

@@ -0,0 +1,335 @@
# C++ skeleton for Bison
# Copyright (C) 2002-2013 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
m4_pushdef([b4_copyright_years],
[2002-2013])
# b4_position_define
# ------------------
# Define class position.
m4_define([b4_position_define],
[[ /// Abstract a position.
class position
{
public:]m4_ifdef([b4_location_constructors], [[
/// Construct a position.
explicit position (]b4_percent_define_get([[filename_type]])[* f = YY_NULL,
unsigned int l = ]b4_location_initial_line[u,
unsigned int c = ]b4_location_initial_column[u)
: filename (f)
, line (l)
, column (c)
{
}
]])[
/// Initialization.
void initialize (]b4_percent_define_get([[filename_type]])[* fn = YY_NULL,
unsigned int l = ]b4_location_initial_line[u,
unsigned int c = ]b4_location_initial_column[u)
{
filename = fn;
line = l;
column = c;
}
/** \name Line and Column related manipulators
** \{ */
/// (line related) Advance to the COUNT next lines.
void lines (int count = 1)
{
if (count)
{
column = ]b4_location_initial_column[u;
line = add_ (line, count, ]b4_location_initial_line[);
}
}
/// (column related) Advance to the COUNT next columns.
void columns (int count = 1)
{
column = add_ (column, count, ]b4_location_initial_column[);
}
/** \} */
/// File name to which this position refers.
]b4_percent_define_get([[filename_type]])[* filename;
/// Current line number.
unsigned int line;
/// Current column number.
unsigned int column;
private:
/// Compute max(min, lhs+rhs) (provided min <= lhs).
static unsigned int add_ (unsigned int lhs, int rhs, unsigned int min)
{
return (0 < rhs || -static_cast<unsigned int>(rhs) < lhs
? rhs + lhs
: min);
}
};
/// Add and assign a position.
inline position&
operator+= (position& res, int width)
{
res.columns (width);
return res;
}
/// Add two position objects.
inline position
operator+ (position res, int width)
{
return res += width;
}
/// Add and assign a position.
inline position&
operator-= (position& res, int width)
{
return res += -width;
}
/// Add two position objects.
inline position
operator- (position res, int width)
{
return res -= width;
}
]b4_percent_define_flag_if([[define_location_comparison]], [[
/// Compare two position objects.
inline bool
operator== (const position& pos1, const position& pos2)
{
return (pos1.line == pos2.line
&& pos1.column == pos2.column
&& (pos1.filename == pos2.filename
|| (pos1.filename && pos2.filename
&& *pos1.filename == *pos2.filename)));
}
/// Compare two position objects.
inline bool
operator!= (const position& pos1, const position& pos2)
{
return !(pos1 == pos2);
}
]])[
/** \brief Intercept output stream redirection.
** \param ostr the destination output stream
** \param pos a reference to the position to redirect
*/
template <typename YYChar>
inline std::basic_ostream<YYChar>&
operator<< (std::basic_ostream<YYChar>& ostr, const position& pos)
{
if (pos.filename)
ostr << *pos.filename << ':';
return ostr << pos.line << '.' << pos.column;
}
]])
# b4_location_define
# ------------------
m4_define([b4_location_define],
[[ /// Abstract a location.
class location
{
public:
]m4_ifdef([b4_location_constructors], [
/// Construct a location from \a b to \a e.
location (const position& b, const position& e)
: begin (b)
, end (e)
{
}
/// Construct a 0-width location in \a p.
explicit location (const position& p = position ())
: begin (p)
, end (p)
{
}
/// Construct a 0-width location in \a f, \a l, \a c.
explicit location (]b4_percent_define_get([[filename_type]])[* f,
unsigned int l = ]b4_location_initial_line[u,
unsigned int c = ]b4_location_initial_column[u)
: begin (f, l, c)
, end (f, l, c)
{
}
])[
/// Initialization.
void initialize (]b4_percent_define_get([[filename_type]])[* f = YY_NULL,
unsigned int l = ]b4_location_initial_line[u,
unsigned int c = ]b4_location_initial_column[u)
{
begin.initialize (f, l, c);
end = begin;
}
/** \name Line and Column related manipulators
** \{ */
public:
/// Reset initial location to final location.
void step ()
{
begin = end;
}
/// Extend the current location to the COUNT next columns.
void columns (int count = 1)
{
end += count;
}
/// Extend the current location to the COUNT next lines.
void lines (int count = 1)
{
end.lines (count);
}
/** \} */
public:
/// Beginning of the located region.
position begin;
/// End of the located region.
position end;
};
/// Join two location objects to create a location.
inline location operator+ (location res, const location& end)
{
res.end = end.end;
return res;
}
/// Change end position in place.
inline location& operator+= (location& res, int width)
{
res.columns (width);
return res;
}
/// Change end position.
inline location operator+ (location res, int width)
{
return res += width;
}
/// Change end position in place.
inline location& operator-= (location& res, int width)
{
return res += -width;
}
/// Change end position.
inline location operator- (const location& begin, int width)
{
return begin + -width;
}
]b4_percent_define_flag_if([[define_location_comparison]], [[
/// Compare two location objects.
inline bool
operator== (const location& loc1, const location& loc2)
{
return loc1.begin == loc2.begin && loc1.end == loc2.end;
}
/// Compare two location objects.
inline bool
operator!= (const location& loc1, const location& loc2)
{
return !(loc1 == loc2);
}
]])[
/** \brief Intercept output stream redirection.
** \param ostr the destination output stream
** \param loc a reference to the location to redirect
**
** Avoid duplicate information.
*/
template <typename YYChar>
inline std::basic_ostream<YYChar>&
operator<< (std::basic_ostream<YYChar>& ostr, const location& loc)
{
unsigned int end_col = 0 < loc.end.column ? loc.end.column - 1 : 0;
ostr << loc.begin// << "(" << loc.end << ") "
;
if (loc.end.filename
&& (!loc.begin.filename
|| *loc.begin.filename != *loc.end.filename))
ostr << '-' << loc.end.filename << ':' << loc.end.line << '.' << end_col;
else if (loc.begin.line < loc.end.line)
ostr << '-' << loc.end.line << '.' << end_col;
else if (loc.begin.column < end_col)
ostr << '-' << end_col;
return ostr;
}
]])
b4_defines_if([
b4_output_begin([b4_dir_prefix[]position.hh])
b4_copyright([Positions for Bison parsers in C++])[
/**
** \file ]b4_dir_prefix[position.hh
** Define the ]b4_namespace_ref[::position class.
*/
]b4_cpp_guard_open([b4_dir_prefix[]position.hh])[
# include <algorithm> // std::max
# include <iostream>
# include <string>
]b4_null_define[
]b4_namespace_open[
]b4_position_define[
]b4_namespace_close[
]b4_cpp_guard_close([b4_dir_prefix[]position.hh])
b4_output_end()
b4_output_begin([b4_dir_prefix[]location.hh])
b4_copyright([Locations for Bison parsers in C++])[
/**
** \file ]b4_dir_prefix[location.hh
** Define the ]b4_namespace_ref[::location class.
*/
]b4_cpp_guard_open([b4_dir_prefix[]location.hh])[
# include "position.hh"
]b4_namespace_open[
]b4_location_define[
]b4_namespace_close[
]b4_cpp_guard_close([b4_dir_prefix[]location.hh])
b4_output_end()
])
m4_popdef([b4_copyright_years])

View File

@@ -4,11 +4,12 @@
# Speeds up GNU M4 1.4.x by avoiding quadratic $@ recursion, but penalizes
# GNU M4 1.6 by requiring more memory and macro expansions.
#
# Copyright (C) 2008 Free Software Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# Copyright (C) 2008-2013 Free Software Foundation, Inc.
# This file is part of Autoconf. This program is free
# software; you can redistribute it and/or modify it under the
# terms of the GNU General Public License as published by the
# Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
@@ -16,38 +17,16 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# Under Section 7 of GPL version 3, you are granted additional
# permissions described in the Autoconf Configure Script Exception,
# version 3.0, as published by the Free Software Foundation.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# and a copy of the Autoconf Configure Script Exception along with
# this program; see the files COPYINGv3 and COPYING.EXCEPTION
# respectively. If not, see <http://www.gnu.org/licenses/>.
# As a special exception, the Free Software Foundation gives unlimited
# permission to copy, distribute and modify the configure scripts that
# are the output of Autoconf. You need not follow the terms of the GNU
# General Public License when using or distributing such scripts, even
# though portions of the text of Autoconf appear in them. The GNU
# General Public License (GPL) does govern all other use of the material
# that constitutes the Autoconf program.
#
# Certain portions of the Autoconf source text are designed to be copied
# (in certain cases, depending on the input) into the output of
# Autoconf. We call these the "data" portions. The rest of the Autoconf
# source text consists of comments plus executable code that decides which
# of the data portions to output in any given case. We call these
# comments and executable code the "non-data" portions. Autoconf never
# copies any of the non-data portions into its output.
#
# This special exception to the GPL applies to versions of Autoconf
# released by the Free Software Foundation. When you make and
# distribute a modified version of Autoconf, you may extend this special
# exception to the GPL to apply to your modified version as well, *unless*
# your modified version has the potential to copy into its output some
# of the text that was the non-data portion of the version that you started
# with. (In other words, unless your change moves or copies text from
# the non-data portions to the data portions.) If your modification has
# such potential, you must delete any notice of this special exception
# to the GPL from your modified version.
#
# Written by Eric Blake.
#
# In M4 1.4.x, every byte of $@ is rescanned. This means that an
# algorithm on n arguments that recurses with one less argument each
@@ -77,29 +56,29 @@
#
# Please keep this file in sync with m4sugar.m4.
# m4_foreach(VARIABLE, LIST, EXPRESSION)
# --------------------------------------
# Expand EXPRESSION assigning each value of the LIST to VARIABLE.
# LIST should have the form `item_1, item_2, ..., item_n', i.e. the
# whole list must *quoted*. Quote members too if you don't want them
# to be expanded.
# _m4_foreach(PRE, POST, IGNORED, ARG...)
# ---------------------------------------
# Form the common basis of the m4_foreach and m4_map macros. For each
# ARG, expand PRE[ARG]POST[]. The IGNORED argument makes recursion
# easier, and must be supplied rather than implicit.
#
# This version minimizes the number of times that $@ is evaluated by
# using m4_for to generate a boilerplate into VARIABLE then passing $@
# to that temporary macro. Thus, the recursion is done in m4_for
# without reparsing any user input, and is not quadratic. For an idea
# of how this works, note that m4_foreach(i,[1,2],[i]) defines i to be
# m4_define([$1],[$3])$2[]m4_define([$1],[$4])$2[]m4_popdef([i])
# then calls i([i],[i],[1],[2]).
m4_define([m4_foreach],
[m4_if([$2], [], [], [_$0([$1], [$3], $2)])])
# using m4_for to generate a boilerplate into _m4_f then passing $@ to
# that temporary macro. Thus, the recursion is done in m4_for without
# reparsing any user input, and is not quadratic. For an idea of how
# this works, note that m4_foreach(i,[1,2],[i]) calls
# _m4_foreach([m4_define([i],],[)i],[],[1],[2])
# which defines _m4_f:
# $1[$4]$2[]$1[$5]$2[]_m4_popdef([_m4_f])
# then calls _m4_f([m4_define([i],],[)i],[],[1],[2]) for a net result:
# m4_define([i],[1])i[]m4_define([i],[2])i[]_m4_popdef([_m4_f]).
m4_define([_m4_foreach],
[m4_define([$1], m4_pushdef([$1])_m4_for([$1], [3], [$#], [1],
[$0_([1], [2], _m4_defn([$1]))])[m4_popdef([$1])])m4_indir([$1], $@)])
[m4_if([$#], [3], [],
[m4_pushdef([_m4_f], _m4_for([4], [$#], [1],
[$0_([1], [2],], [)])[_m4_popdef([_m4_f])])_m4_f($@)])])
m4_define([_m4_foreach_],
[[m4_define([$$1], [$$3])$$2[]]])
[[$$1[$$3]$$2[]]])
# m4_case(SWITCH, VAL1, IF-VAL1, VAL2, IF-VAL2, ..., DEFAULT)
# -----------------------------------------------------------
@@ -114,11 +93,14 @@ m4_define([_m4_foreach_],
# m4_if([$1],[$2],[$3],[$1],[$4],[$5],_m4_popdef([_m4_case])[$6])
m4_define([m4_case],
[m4_if(m4_eval([$# <= 2]), [1], [$2],
[m4_pushdef([_$0], [m4_if(]m4_for([_m4_count], [2], m4_decr([$#]), [2],
[_$0_([1], _m4_count, m4_incr(_m4_count))])[_m4_popdef(
[m4_pushdef([_$0], [m4_if(]_m4_for([2], m4_eval([($# - 1) / 2 * 2]), [2],
[_$0_(], [)])[_m4_popdef(
[_$0])]m4_dquote($m4_eval([($# + 1) & ~1]))[)])_$0($@)])])
m4_define([_m4_case_],
[$0_([1], [$1], m4_incr([$1]))])
m4_define([_m4_case__],
[[[$$1],[$$2],[$$3],]])
# m4_bmatch(SWITCH, RE1, VAL1, RE2, VAL2, ..., DEFAULT)
@@ -142,15 +124,18 @@ m4_define([m4_bmatch],
[m4_if([$#], 0, [m4_fatal([$0: too few arguments: $#])],
[$#], 1, [m4_fatal([$0: too few arguments: $#: $1])],
[$#], 2, [$2],
[m4_define([_m4_b], m4_pushdef([_m4_b])[m4_define([_m4_b],
_m4_defn([_$0]))]_m4_for([_m4_b], [3], m4_eval([($# + 1) / 2 * 2 - 1]),
[2], [_$0_([1], m4_decr(_m4_b), _m4_b)])[_m4_b([], [],]m4_dquote(
[$]m4_incr(_m4_b))[_m4_popdef([_m4_b]))])m4_unquote(_m4_b($@))])])
[m4_pushdef([_m4_b], [m4_define([_m4_b],
_m4_defn([_$0]))]_m4_for([3], m4_eval([($# + 1) / 2 * 2 - 1]),
[2], [_$0_(], [)])[_m4_b([], [],]m4_dquote([$]m4_eval(
[($# + 1) / 2 * 2]))[_m4_popdef([_m4_b]))])m4_unquote(_m4_b($@))])])
m4_define([_m4_bmatch],
[m4_if(m4_bregexp([$1], [$2]), [-1], [], [[$3]m4_define([$0])])])
m4_define([_m4_bmatch_],
[$0_([1], m4_decr([$1]), [$1])])
m4_define([_m4_bmatch__],
[[_m4_b([$$1], [$$2], [$$3])]])
@@ -170,12 +155,15 @@ m4_define([_m4_bmatch_],
# [[$m]m4_define([_m4_c])])])_m4_c([[$m+1]]_m4_popdef([_m4_c]))
# We invoke m4_unquote(_m4_c($@)), for concatenation with later text.
m4_define([_m4_cond],
[m4_define([_m4_c], m4_pushdef([_m4_c])[m4_define([_m4_c],
_m4_defn([m4_unquote]))]_m4_for([_m4_c], [2], m4_eval([$# / 3 * 3 - 1]), [3],
[$0_(m4_decr(_m4_c), _m4_c, m4_incr(_m4_c))])[_m4_c(]m4_dquote(m4_dquote(
[m4_pushdef([_m4_c], [m4_define([_m4_c],
_m4_defn([m4_unquote]))]_m4_for([2], m4_eval([$# / 3 * 3 - 1]), [3],
[$0_(], [)])[_m4_c(]m4_dquote(m4_dquote(
[$]m4_eval([$# / 3 * 3 + 1])))[_m4_popdef([_m4_c]))])m4_unquote(_m4_c($@))])
m4_define([_m4_cond_],
[$0_(m4_decr([$1]), [$1], m4_incr([$1]))])
m4_define([_m4_cond__],
[[_m4_c([m4_if(($$1), [($$2)], [[$$3]m4_define([_m4_c])])])]])
# m4_bpatsubsts(STRING, RE1, SUBST1, RE2, SUBST2, ...)
@@ -196,11 +184,14 @@ m4_define([_m4_cond_],
# m4_bpatsubst(m4_dquote(_m4_defn([_m4_p])), [$m-1], [$m]))m4_unquote(
# _m4_defn([_m4_p])_m4_popdef([_m4_p]))
m4_define([_m4_bpatsubsts],
[m4_define([_m4_p], m4_pushdef([_m4_p])[m4_define([_m4_p],
]m4_dquote([$]1)[)]_m4_for([_m4_p], [3], [$#], [2], [$0_(m4_decr(_m4_p),
_m4_p)])[m4_unquote(_m4_defn([_m4_p])_m4_popdef([_m4_p]))])_m4_p($@)])
[m4_pushdef([_m4_p], [m4_define([_m4_p],
]m4_dquote([$]1)[)]_m4_for([3], [$#], [2], [$0_(],
[)])[m4_unquote(_m4_defn([_m4_p])_m4_popdef([_m4_p]))])_m4_p($@)])
m4_define([_m4_bpatsubsts_],
[$0_(m4_decr([$1]), [$1])])
m4_define([_m4_bpatsubsts__],
[[m4_define([_m4_p],
m4_bpatsubst(m4_dquote(_m4_defn([_m4_p])), [$$1], [$$2]))]])
@@ -213,9 +204,9 @@ m4_bpatsubst(m4_dquote(_m4_defn([_m4_p])), [$$1], [$$2]))]])
# ,[$5],[$6],...,[$m]_m4_popdef([_m4_s])
# before calling m4_shift(_m4_s($@)).
m4_define([_m4_shiftn],
[m4_if(m4_incr([$1]), [$#], [], [m4_define([_m4_s],
m4_pushdef([_m4_s])_m4_for([_m4_s], m4_eval([$1 + 2]), [$#], [1],
[[,]m4_dquote([$]_m4_s)])[_m4_popdef([_m4_s])])m4_shift(_m4_s($@))])])
[m4_if(m4_incr([$1]), [$#], [], [m4_pushdef([_m4_s],
_m4_for(m4_eval([$1 + 2]), [$#], [1],
[[,]m4_dquote($], [)])[_m4_popdef([_m4_s])])m4_shift(_m4_s($@))])])
# m4_do(STRING, ...)
# ------------------
@@ -227,16 +218,16 @@ m4_define([_m4_shiftn],
# $1[]$2[]...[]$n[]_m4_popdef([_m4_do])
m4_define([m4_do],
[m4_if([$#], [0], [],
[m4_define([_$0], m4_pushdef([_$0])_m4_for([_$0], [1], [$#], [1],
[$_$0[[]]])[_m4_popdef([_$0])])_$0($@)])])
[m4_pushdef([_$0], _m4_for([1], [$#], [1],
[$], [[[]]])[_m4_popdef([_$0])])_$0($@)])])
# m4_dquote_elt(ARGS)
# -------------------
# Return ARGS as an unquoted list of double-quoted arguments.
#
# m4_foreach to the rescue. It's easier to shift off the leading comma.
# _m4_foreach to the rescue.
m4_define([m4_dquote_elt],
[m4_shift(m4_foreach([_m4_elt], [$@], [,m4_dquote(_m4_defn([_m4_elt]))]))])
[m4_if([$#], [0], [], [[[$1]]_m4_foreach([,m4_dquote(], [)], $@)])])
# m4_reverse(ARGS)
# ----------------
@@ -246,67 +237,36 @@ m4_define([m4_dquote_elt],
# [$m], [$m-1], ..., [$2], [$1]_m4_popdef([_m4_r])
m4_define([m4_reverse],
[m4_if([$#], [0], [], [$#], [1], [[$1]],
[m4_define([_m4_r], m4_dquote([$$#])m4_pushdef([_m4_r])_m4_for([_m4_r],
m4_decr([$#]), [1], [-1],
[[, ]m4_dquote([$]_m4_r)])[_m4_popdef([_m4_r])])_m4_r($@)])])
[m4_pushdef([_m4_r], [[$$#]]_m4_for(m4_decr([$#]), [1], [-1],
[[, ]m4_dquote($], [)])[_m4_popdef([_m4_r])])_m4_r($@)])])
# m4_map(MACRO, LIST)
# -------------------
# Invoke MACRO($1), MACRO($2) etc. where $1, $2... are the elements
# of LIST. $1, $2... must in turn be lists, appropriate for m4_apply.
#
# m4_map/m4_map_sep only execute once; the speedup comes in fixing
# _m4_map. The mismatch in () is intentional, since $1 supplies the
# opening `(' (but it sure looks odd!). Build the temporary _m4_m:
# $1, [$3])$1, [$4])...$1, [$m])_m4_popdef([_m4_m])
m4_define([_m4_map],
[m4_if([$#], [2], [],
[m4_define([_m4_m], m4_pushdef([_m4_m])_m4_for([_m4_m], [3], [$#], [1],
[$0_([1], _m4_m)])[_m4_popdef([_m4_m])])_m4_m($@)])])
m4_define([_m4_map_],
[[$$1, [$$2])]])
# m4_transform(EXPRESSION, ARG...)
# --------------------------------
# Expand EXPRESSION([ARG]) for each argument. More efficient than
# m4_foreach([var], [ARG...], [EXPRESSION(m4_defn([var]))])
#
# Invoke the temporary macro _m4_transform, defined as:
# $1([$2])[]$1([$3])[]...$1([$m])[]_m4_popdef([_m4_transform])
m4_define([m4_transform],
[m4_if([$#], [0], [m4_fatal([$0: too few arguments: $#])],
[$#], [1], [],
[m4_define([_$0], m4_pushdef([_$0])_m4_for([_$0], [2], [$#], [1],
[_$0_([1], _$0)])[_m4_popdef([_$0])])_$0($@)])])
m4_define([_m4_transform_],
[[$$1([$$2])[]]])
# m4_transform_pair(EXPRESSION, [END-EXPR = EXPRESSION], ARG...)
# --------------------------------------------------------------
# m4_map_args_pair(EXPRESSION, [END-EXPR = EXPRESSION], ARG...)
# -------------------------------------------------------------
# Perform a pairwise grouping of consecutive ARGs, by expanding
# EXPRESSION([ARG1], [ARG2]). If there are an odd number of ARGs, the
# final argument is expanded with END-EXPR([ARGn]).
#
# Build the temporary macro _m4_transform_pair, with the $2([$m+1])
# Build the temporary macro _m4_map_args_pair, with the $2([$m+1])
# only output if $# is odd:
# $1([$3], [$4])[]$1([$5], [$6])[]...$1([$m-1],
# [$m])[]m4_default([$2], [$1])([$m+1])[]_m4_popdef([_m4_transform_pair])
m4_define([m4_transform_pair],
# [$m])[]m4_default([$2], [$1])([$m+1])[]_m4_popdef([_m4_map_args_pair])
m4_define([m4_map_args_pair],
[m4_if([$#], [0], [m4_fatal([$0: too few arguments: $#])],
[$#], [1], [m4_fatal([$0: too few arguments: $#: $1])],
[$#], [2], [],
[$#], [3], [m4_default([$2], [$1])([$3])[]],
[m4_define([_$0], m4_pushdef([_$0])_m4_for([_$0], [3],
m4_eval([$# / 2 * 2 - 1]), [2], [_$0_([1], _$0, m4_incr(_$0))])_$0_end(
[m4_pushdef([_$0], _m4_for([3],
m4_eval([$# / 2 * 2 - 1]), [2], [_$0_(], [)])_$0_end(
[1], [2], [$#])[_m4_popdef([_$0])])_$0($@)])])
m4_define([_m4_transform_pair_],
m4_define([_m4_map_args_pair_],
[$0_([1], [$1], m4_incr([$1]))])
m4_define([_m4_map_args_pair__],
[[$$1([$$2], [$$3])[]]])
m4_define([_m4_transform_pair_end],
m4_define([_m4_map_args_pair_end],
[m4_if(m4_eval([$3 & 1]), [1], [[m4_default([$$2], [$$1])([$$3])[]]])])
# m4_join(SEP, ARG1, ARG2...)
@@ -316,23 +276,23 @@ m4_define([_m4_transform_pair_end],
#
# Use a self-modifying separator, since we don't know how many
# arguments might be skipped before a separator is first printed, but
# be careful if the separator contains $. m4_foreach to the rescue.
# be careful if the separator contains $. _m4_foreach to the rescue.
m4_define([m4_join],
[m4_pushdef([_m4_sep], [m4_define([_m4_sep], _m4_defn([m4_echo]))])]dnl
[m4_foreach([_m4_arg], [m4_shift($@)],
[m4_ifset([_m4_arg], [_m4_sep([$1])_m4_defn([_m4_arg])])])]dnl
[_m4_popdef([_m4_sep])])
[_m4_foreach([_$0([$1],], [)], $@)_m4_popdef([_m4_sep])])
m4_define([_m4_join],
[m4_if([$2], [], [], [_m4_sep([$1])[$2]])])
# m4_joinall(SEP, ARG1, ARG2...)
# ------------------------------
# Produce ARG1SEPARG2...SEPARGn. An empty ARG results in back-to-back SEP.
# No expansion is performed on SEP or ARGs.
#
# A bit easier than m4_join. m4_foreach to the rescue.
# A bit easier than m4_join. _m4_foreach to the rescue.
m4_define([m4_joinall],
[[$2]m4_if(m4_eval([$# <= 2]), [1], [],
[m4_foreach([_m4_arg], [m4_shift2($@)],
[[$1]_m4_defn([_m4_arg])])])])
[_m4_foreach([$1], [], m4_shift($@))])])
# m4_list_cmp(A, B)
# -----------------
@@ -346,24 +306,26 @@ m4_define([m4_joinall],
# is found. For example, m4_list_cmp([1], [1,2]) creates _m4_cmp as
# m4_if(m4_eval([($1) != ($3)]), [1], [m4_cmp([$1], [$3])],
# m4_eval([($2) != ($4)]), [1], [m4_cmp([$2], [$4])],
# [0]_m4_popdef([_m4_cmp], [_m4_size]))
# then calls _m4_cmp([1+0], [0], [1], [2+0])
# [0]_m4_popdef([_m4_cmp]))
# then calls _m4_cmp([1+0], [0*2], [1], [2+0])
m4_define([_m4_list_cmp_raw],
[m4_if([$1], [$2], 0, [m4_pushdef(
[_m4_size])_m4_list_cmp($1+0_m4_list_pad(m4_count($1), m4_count($2)),
$2+0_m4_list_pad(m4_count($2), m4_count($1)))])])
[m4_if([$1], [$2], 0,
[_m4_list_cmp($1+0_m4_list_pad(m4_count($1), m4_count($2)),
$2+0_m4_list_pad(m4_count($2), m4_count($1)))])])
m4_define([_m4_list_pad],
[m4_if(m4_eval($1 < $2), [1],
[_m4_for([_m4_size], m4_incr([$1]), [$2], [1], [,0])])])
[_m4_for(m4_incr([$1]), [$2], [1], [,0*])])])
m4_define([_m4_list_cmp],
[m4_define([_m4_size], m4_eval([$# >> 1]))]dnl
[m4_define([_m4_cmp], m4_pushdef([_m4_cmp])[m4_if(]_m4_for([_m4_cmp],
[1], _m4_size, [1], [$0_(_m4_cmp, m4_eval(_m4_cmp + _m4_size))])[
[0]_m4_popdef([_m4_cmp], [_m4_size]))])_m4_cmp($@)])
[m4_pushdef([_m4_cmp], [m4_if(]_m4_for(
[1], m4_eval([$# >> 1]), [1], [$0_(], [,]m4_eval([$# >> 1])[)])[
[0]_m4_popdef([_m4_cmp]))])_m4_cmp($@)])
m4_define([_m4_list_cmp_],
[$0_([$1], m4_eval([$1 + $2]))])
m4_define([_m4_list_cmp__],
[[m4_eval([($$1) != ($$2)]), [1], [m4_cmp([$$1], [$$2])],
]])
@@ -373,12 +335,12 @@ m4_define([_m4_list_cmp_],
# Return the decimal value of the maximum (or minimum) in a series of
# integer expressions.
#
# m4_foreach to the rescue; we only need to replace _m4_minmax. Here,
# _m4_foreach to the rescue; we only need to replace _m4_minmax. Here,
# we need a temporary macro to track the best answer so far, so that
# the foreach expression is tractable.
m4_define([_m4_minmax],
[m4_pushdef([_m4_best], m4_eval([$2]))m4_foreach([_m4_arg], [m4_shift2($@)],
[m4_define([_m4_best], $1(_m4_best, _m4_defn([_m4_arg])))])]dnl
[m4_pushdef([_m4_best], m4_eval([$2]))_m4_foreach(
[m4_define([_m4_best], $1(_m4_best,], [))], m4_shift($@))]dnl
[_m4_best[]_m4_popdef([_m4_best])])
# m4_set_add_all(SET, VALUE...)
@@ -386,15 +348,15 @@ m4_define([_m4_minmax],
# Add each VALUE into SET. This is O(n) in the number of VALUEs, and
# can be faster than calling m4_set_add for each VALUE.
#
# m4_foreach to the rescue. If no deletions have occurred, then avoid
# the speed penalty of m4_set_add.
# _m4_foreach to the rescue. If no deletions have occurred, then
# avoid the speed penalty of m4_set_add.
m4_define([m4_set_add_all],
[m4_if([$#], [0], [], [$#], [1], [],
[m4_define([_m4_set_size($1)], m4_eval(m4_set_size([$1])
+ m4_len(m4_foreach([_m4_arg], [m4_shift($@)],
m4_ifdef([_m4_set_cleanup($1)],
[[m4_set_add([$1], _m4_defn([_m4_arg]))]],
[[m4_ifdef([_m4_set([$1],]_m4_defn([_m4_arg])[)], [],
[m4_define([_m4_set([$1],]_m4_defn([_m4_arg])[)],
[1])m4_pushdef([_m4_set([$1])],
_m4_defn([_m4_arg]))-])]])))))])])
+ m4_len(_m4_foreach(m4_ifdef([_m4_set_cleanup($1)],
[[m4_set_add]], [[_$0]])[([$1],], [)], $@))))])])
m4_define([_m4_set_add_all],
[m4_ifdef([_m4_set([$1],$2)], [],
[m4_define([_m4_set([$1],$2)],
[1])m4_pushdef([_m4_set([$1])], [$2])-])])

154
gnuwin32/bin/data/stack.hh Normal file
View File

@@ -0,0 +1,154 @@
# C++ skeleton for Bison
# Copyright (C) 2002-2013 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
m4_pushdef([b4_copyright_years],
[2002-2013])
# b4_stack_define
# ---------------
m4_define([b4_stack_define],
[[ template <class T, class S = std::vector<T> >
class stack
{
public:
// Hide our reversed order.
typedef typename S::reverse_iterator iterator;
typedef typename S::const_reverse_iterator const_iterator;
stack ()
: seq_ ()
{
}
stack (unsigned int n)
: seq_ (n)
{
}
inline
T&
operator[] (unsigned int i)
{
return seq_[seq_.size () - 1 - i];
}
inline
const T&
operator[] (unsigned int i) const
{
return seq_[seq_.size () - 1 - i];
}
/// Steal the contents of \a t.
///
/// Close to move-semantics.
inline
void
push (T& t)
{
seq_.push_back (T());
operator[](0).move (t);
}
inline
void
pop (unsigned int n = 1)
{
for (; n; --n)
seq_.pop_back ();
}
void
clear ()
{
seq_.clear ();
}
inline
typename S::size_type
size () const
{
return seq_.size ();
}
inline
const_iterator
begin () const
{
return seq_.rbegin ();
}
inline
const_iterator
end () const
{
return seq_.rend ();
}
private:
stack (const stack&);
stack& operator= (const stack&);
/// The wrapped container.
S seq_;
};
/// Present a slice of the top of a stack.
template <class T, class S = stack<T> >
class slice
{
public:
slice (const S& stack, unsigned int range)
: stack_ (stack)
, range_ (range)
{
}
inline
const T&
operator [] (unsigned int i) const
{
return stack_[range_ - i];
}
private:
const S& stack_;
unsigned int range_;
};
]])
b4_defines_if(
[b4_output_begin([b4_dir_prefix[]stack.hh])
b4_copyright([Stack handling for Bison parsers in C++])[
/**
** \file ]b4_dir_prefix[stack.hh
** Define the ]b4_namespace_ref[::stack class.
*/
]b4_cpp_guard_open([b4_dir_prefix[]stack.hh])[
# include <vector>
]b4_namespace_open[
]b4_stack_define[
]b4_namespace_close[
]b4_cpp_guard_close([b4_dir_prefix[]stack.hh])
b4_output_end()
])
m4_popdef([b4_copyright_years])

View File

@@ -0,0 +1,362 @@
# C++ skeleton for Bison
# Copyright (C) 2002-2013 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
## --------- ##
## variant. ##
## --------- ##
# b4_symbol_variant(YYTYPE, YYVAL, ACTION, [ARGS])
# ------------------------------------------------
# Run some ACTION ("build", or "destroy") on YYVAL of symbol type
# YYTYPE.
m4_define([b4_symbol_variant],
[m4_pushdef([b4_dollar_dollar],
[$2.$3< $][3 > (m4_shift3($@))])dnl
switch ($1)
{
b4_type_foreach([b4_type_action_])[]dnl
default:
break;
}
m4_popdef([b4_dollar_dollar])dnl
])
# _b4_char_sizeof_counter
# -----------------------
# A counter used by _b4_char_sizeof_dummy to create fresh symbols.
m4_define([_b4_char_sizeof_counter],
[0])
# _b4_char_sizeof_dummy
# ---------------------
# At each call return a new C++ identifier.
m4_define([_b4_char_sizeof_dummy],
[m4_define([_b4_char_sizeof_counter], m4_incr(_b4_char_sizeof_counter))dnl
dummy[]_b4_char_sizeof_counter])
# b4_char_sizeof(SYMBOL-NUMS)
# ---------------------------
# To be mapped on the list of type names to produce:
#
# char dummy1[sizeof(type_name_1)];
# char dummy2[sizeof(type_name_2)];
#
# for defined type names.
m4_define([b4_char_sizeof],
[b4_symbol_if([$1], [has_type],
[
m4_map([ b4_symbol_tag_comment], [$@])dnl
char _b4_char_sizeof_dummy@{sizeof(b4_symbol([$1], [type]))@};
])])
# b4_variant_includes
# -------------------
# The needed includes for variants support.
m4_define([b4_variant_includes],
[b4_parse_assert_if([[#include <typeinfo>]])[
#ifndef YYASSERT
# include <cassert>
# define YYASSERT assert
#endif
]])
# b4_variant_define
# -----------------
# Define "variant".
m4_define([b4_variant_define],
[[ /// A char[S] buffer to store and retrieve objects.
///
/// Sort of a variant, but does not keep track of the nature
/// of the stored data, since that knowledge is available
/// via the current state.
template <size_t S>
struct variant
{
/// Type of *this.
typedef variant<S> self_type;
/// Empty construction.
variant ()]b4_parse_assert_if([
: yytname_ (YY_NULL)])[
{}
/// Construct and fill.
template <typename T>
variant (const T& t)]b4_parse_assert_if([
: yytname_ (typeid (T).name ())])[
{
YYASSERT (sizeof (T) <= S);
new (yyas_<T> ()) T (t);
}
/// Destruction, allowed only if empty.
~variant ()
{]b4_parse_assert_if([
YYASSERT (!yytname_);
])[}
/// Instantiate an empty \a T in here.
template <typename T>
T&
build ()
{]b4_parse_assert_if([
YYASSERT (!yytname_);
YYASSERT (sizeof (T) <= S);
yytname_ = typeid (T).name ();])[
return *new (yyas_<T> ()) T;
}
/// Instantiate a \a T in here from \a t.
template <typename T>
T&
build (const T& t)
{]b4_parse_assert_if([
YYASSERT (!yytname_);
YYASSERT (sizeof (T) <= S);
yytname_ = typeid (T).name ();])[
return *new (yyas_<T> ()) T (t);
}
/// Accessor to a built \a T.
template <typename T>
T&
as ()
{]b4_parse_assert_if([
YYASSERT (yytname_ == typeid (T).name ());
YYASSERT (sizeof (T) <= S);])[
return *yyas_<T> ();
}
/// Const accessor to a built \a T (for %printer).
template <typename T>
const T&
as () const
{]b4_parse_assert_if([
YYASSERT (yytname_ == typeid (T).name ());
YYASSERT (sizeof (T) <= S);])[
return *yyas_<T> ();
}
/// Swap the content with \a other, of same type.
///
/// Both variants must be built beforehand, because swapping the actual
/// data requires reading it (with as()), and this is not possible on
/// unconstructed variants: it would require some dynamic testing, which
/// should not be the variant's responsability.
/// Swapping between built and (possibly) non-built is done with
/// variant::move ().
template <typename T>
void
swap (self_type& other)
{]b4_parse_assert_if([
YYASSERT (yytname_);
YYASSERT (yytname_ == other.yytname_);])[
std::swap (as<T> (), other.as<T> ());
}
/// Move the content of \a other to this.
///
/// Destroys \a other.
template <typename T>
void
move (self_type& other)
{]b4_parse_assert_if([
YYASSERT (!yytname_);])[
build<T> ();
swap<T> (other);
other.destroy<T> ();
}
/// Copy the content of \a other to this.
template <typename T>
void
copy (const self_type& other)
{
build<T> (other.as<T> ());
}
/// Destroy the stored \a T.
template <typename T>
void
destroy ()
{
as<T> ().~T ();]b4_parse_assert_if([
yytname_ = YY_NULL;])[
}
private:
/// Prohibit blind copies.
self_type& operator=(const self_type&);
variant (const self_type&);
/// Accessor to raw memory as \a T.
template <typename T>
T*
yyas_ ()
{
void *yyp = yybuffer_.yyraw;
return static_cast<T*> (yyp);
}
/// Const accessor to raw memory as \a T.
template <typename T>
const T*
yyas_ () const
{
const void *yyp = yybuffer_.yyraw;
return static_cast<const T*> (yyp);
}
union
{
/// Strongest alignment constraints.
long double yyalign_me;
/// A buffer large enough to store any of the semantic values.
char yyraw[S];
} yybuffer_;]b4_parse_assert_if([
/// Whether the content is built: if defined, the name of the stored type.
const char *yytname_;])[
};
]])
## -------------------------- ##
## Adjustments for variants. ##
## -------------------------- ##
# b4_value_type_declare
# ---------------------
# Declare semantic_type.
m4_define([b4_value_type_declare],
[[ /// An auxiliary type to compute the largest semantic type.
union union_type
{]b4_type_foreach([b4_char_sizeof])[};
/// Symbol semantic values.
typedef variant<sizeof(union_type)> semantic_type;][]dnl
])
# How the semantic value is extracted when using variants.
# b4_symbol_value(VAL, [TYPE])
# ----------------------------
m4_define([b4_symbol_value],
[m4_ifval([$2],
[$1.as< $2 > ()],
[$1])])
# b4_symbol_value_template(VAL, [TYPE])
# -------------------------------------
# Same as b4_symbol_value, but used in a template method.
m4_define([b4_symbol_value_template],
[m4_ifval([$2],
[$1.template as< $2 > ()],
[$1])])
## ------------- ##
## make_SYMBOL. ##
## ------------- ##
# b4_symbol_constructor_declare_(SYMBOL-NUMBER)
# ---------------------------------------------
# Declare the overloaded version of make_symbol for the (common) type of
# these SYMBOL-NUMBERS. Use at class-level.
m4_define([b4_symbol_constructor_declare_],
[b4_symbol_if([$1], [is_token], [b4_symbol_if([$1], [has_id],
[ static inline
symbol_type
make_[]b4_symbol_([$1], [id]) (dnl
b4_join(b4_symbol_if([$1], [has_type],
[const b4_symbol([$1], [type])& v]),
b4_locations_if([const location_type& l])));
])])])
# b4_symbol_constructor_declare
# -----------------------------
# Declare symbol constructors for all the value types.
# Use at class-level.
m4_define([b4_symbol_constructor_declare],
[ // Symbol constructors declarations.
b4_symbol_foreach([b4_symbol_constructor_declare_])])
# b4_symbol_constructor_define_(SYMBOL-NUMBER)
# --------------------------------------------
# Define symbol constructor for this SYMBOL-NUMBER.
m4_define([b4_symbol_constructor_define_],
[b4_symbol_if([$1], [is_token], [b4_symbol_if([$1], [has_id],
[ b4_parser_class_name::symbol_type
b4_parser_class_name::make_[]b4_symbol_([$1], [id]) (dnl
b4_join(b4_symbol_if([$1], [has_type],
[const b4_symbol([$1], [type])& v]),
b4_locations_if([const location_type& l])))
{
return symbol_type (b4_join([token::b4_symbol([$1], [id])],
b4_symbol_if([$1], [has_type], [v]),
b4_locations_if([l])));
}
])])])
# b4_basic_symbol_constructor_declare
# -----------------------------------
# Generate a constructor declaration for basic_symbol from given type.
m4_define([b4_basic_symbol_constructor_declare],
[[
basic_symbol (]b4_join(
[typename Base::kind_type t],
b4_symbol_if([$1], [has_type], const b4_symbol([$1], [type])[ v]),
b4_locations_if([const location_type& l]))[);
]])
# b4_basic_symbol_constructor_define
# ----------------------------------
# Generate a constructor implementation for basic_symbol from given type.
m4_define([b4_basic_symbol_constructor_define],
[[
template <typename Base>
]b4_parser_class_name[::basic_symbol<Base>::basic_symbol (]b4_join(
[typename Base::kind_type t],
b4_symbol_if([$1], [has_type], const b4_symbol([$1], [type])[ v]),
b4_locations_if([const location_type& l]))[)
: Base (t)
, value (]b4_symbol_if([$1], [has_type], [v])[)]b4_locations_if([
, location (l)])[
{}
]])
# b4_symbol_constructor_define
# ----------------------------
# Define the overloaded versions of make_symbol for all the value types.
m4_define([b4_symbol_constructor_define],
[ // Implementation of make_symbol for each symbol type.
b4_symbol_foreach([b4_symbol_constructor_define_])])

View File

@@ -3,7 +3,7 @@
<!--
bison.xsl - common templates for Bison XSLT.
Copyright (C) 2007, 2008 Free Software Foundation, Inc.
Copyright (C) 2007-2013 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
@@ -90,4 +90,16 @@
<xsl:value-of select="string-length(translate($conflict-data, 's', ''))"/>
</xsl:template>
<xsl:template name="space">
<xsl:param name="repeat">0</xsl:param>
<xsl:param name="fill" select="' '"/>
<xsl:if test="number($repeat) &gt;= 1">
<xsl:call-template name="space">
<xsl:with-param name="repeat" select="$repeat - 1"/>
<xsl:with-param name="fill" select="$fill"/>
</xsl:call-template>
<xsl:value-of select="$fill"/>
</xsl:if>
</xsl:template>
</xsl:stylesheet>

View File

@@ -0,0 +1,397 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
xml2dot.xsl - transform Bison XML Report into DOT.
Copyright (C) 2007-2013 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Written by Wojciech Polak <polak@gnu.org>.
-->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:bison="http://www.gnu.org/software/bison/">
<xsl:import href="bison.xsl"/>
<xsl:output method="text" encoding="UTF-8" indent="no"/>
<xsl:template match="/">
<xsl:apply-templates select="bison-xml-report"/>
</xsl:template>
<xsl:template match="bison-xml-report">
<xsl:text>// Generated by GNU Bison </xsl:text>
<xsl:value-of select="@version"/>
<xsl:text>.&#10;</xsl:text>
<xsl:text>// Report bugs to &lt;</xsl:text>
<xsl:value-of select="@bug-report"/>
<xsl:text>&gt;.&#10;</xsl:text>
<xsl:text>// Home page: &lt;</xsl:text>
<xsl:value-of select="@url"/>
<xsl:text>&gt;.&#10;&#10;</xsl:text>
<xsl:apply-templates select="automaton">
<xsl:with-param name="filename" select="filename"/>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="automaton">
<xsl:param name="filename"/>
<xsl:text>digraph "</xsl:text>
<xsl:call-template name="escape">
<xsl:with-param name="subject" select="$filename"/>
</xsl:call-template>
<xsl:text>"&#10;{
node [fontname = courier, shape = box, colorscheme = paired6]
edge [fontname = courier]
</xsl:text>
<xsl:apply-templates select="state"/>
<xsl:text>}&#10;</xsl:text>
</xsl:template>
<xsl:template match="automaton/state">
<xsl:call-template name="output-node">
<xsl:with-param name="number" select="@number"/>
<xsl:with-param name="label">
<xsl:apply-templates select="itemset/item"/>
</xsl:with-param>
</xsl:call-template>
<xsl:apply-templates select="actions/transitions"/>
<xsl:apply-templates select="actions/reductions">
<xsl:with-param name="staten">
<xsl:value-of select="@number"/>
</xsl:with-param>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="actions/reductions">
<xsl:param name="staten"/>
<xsl:for-each select='reduction'>
<!-- These variables are needed because the current context can't be
refered to directly in XPath expressions. -->
<xsl:variable name="rul">
<xsl:value-of select="@rule"/>
</xsl:variable>
<xsl:variable name="ena">
<xsl:value-of select="@enabled"/>
</xsl:variable>
<!-- The foreach's body is protected by this, so that we are actually
going to iterate once per reduction rule, and not per lookahead. -->
<xsl:if test='not(preceding-sibling::*[@rule=$rul and @enabled=$ena])'>
<xsl:variable name="rule">
<xsl:choose>
<!-- The acceptation state is refered to as 'accept' in the XML, but
just as '0' in the DOT. -->
<xsl:when test="@rule='accept'">
<xsl:text>0</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="@rule"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- The edge's beginning -->
<xsl:call-template name="reduction-edge-start">
<xsl:with-param name="state" select="$staten"/>
<xsl:with-param name="rule" select="$rule"/>
<xsl:with-param name="enabled" select="@enabled"/>
</xsl:call-template>
<!-- The edge's tokens -->
<!-- Don't show labels for the default action. In other cases, there will
always be at least one token, so 'label="[]"' will not occur. -->
<xsl:if test='$rule!=0 and not(../reduction[@enabled=$ena and @rule=$rule and @symbol="$default"])'>
<xsl:text>label="[</xsl:text>
<xsl:for-each select='../reduction[@enabled=$ena and @rule=$rule]'>
<xsl:call-template name="escape">
<xsl:with-param name="subject" select="@symbol"/>
</xsl:call-template>
<xsl:if test="position() != last ()">
<xsl:text>, </xsl:text>
</xsl:if>
</xsl:for-each>
<xsl:text>]", </xsl:text>
</xsl:if>
<!-- The edge's end -->
<xsl:text>style=solid]&#10;</xsl:text>
<!-- The diamond representing the reduction -->
<xsl:call-template name="reduction-node">
<xsl:with-param name="state" select="$staten"/>
<xsl:with-param name="rule" select="$rule"/>
<xsl:with-param name="color">
<xsl:choose>
<xsl:when test='@enabled="true"'>
<xsl:text>3</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>5</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:with-param>
</xsl:call-template>
</xsl:if>
</xsl:for-each>
</xsl:template>
<xsl:template match="actions/transitions">
<xsl:apply-templates select="transition"/>
</xsl:template>
<xsl:template match="item">
<xsl:param name="prev-rule-number"
select="preceding-sibling::item[1]/@rule-number"/>
<xsl:apply-templates select="key('bison:ruleByNumber', @rule-number)">
<xsl:with-param name="point" select="@point"/>
<xsl:with-param name="num" select="@rule-number"/>
<xsl:with-param name="prev-lhs"
select="key('bison:ruleByNumber', $prev-rule-number)/lhs[text()]"
/>
</xsl:apply-templates>
<xsl:apply-templates select="lookaheads"/>
</xsl:template>
<xsl:template match="rule">
<xsl:param name="point"/>
<xsl:param name="num"/>
<xsl:param name="prev-lhs"/>
<xsl:text>&#10;</xsl:text>
<xsl:choose>
<xsl:when test="$num &lt; 10">
<xsl:text> </xsl:text>
</xsl:when>
<xsl:when test="$num &lt; 100">
<xsl:text> </xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text></xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:value-of select="$num"/>
<xsl:text> </xsl:text>
<xsl:choose>
<xsl:when test="$prev-lhs = lhs[text()]">
<xsl:call-template name="lpad">
<xsl:with-param name="str" select="'|'"/>
<xsl:with-param name="pad" select="number(string-length(lhs[text()])) + 1"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="lhs"/>
<xsl:text>:</xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="$point = 0">
<xsl:text> .</xsl:text>
</xsl:if>
<xsl:for-each select="rhs/symbol|rhs/empty">
<xsl:apply-templates select="."/>
<xsl:if test="$point = position()">
<xsl:text> .</xsl:text>
</xsl:if>
</xsl:for-each>
</xsl:template>
<xsl:template match="symbol">
<xsl:text> </xsl:text>
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="empty"/>
<xsl:template match="lookaheads">
<xsl:text> [</xsl:text>
<xsl:apply-templates select="symbol"/>
<xsl:text>]</xsl:text>
</xsl:template>
<xsl:template match="lookaheads/symbol">
<xsl:value-of select="."/>
<xsl:if test="position() != last()">
<xsl:text>, </xsl:text>
</xsl:if>
</xsl:template>
<xsl:template name="reduction-edge-start">
<xsl:param name="state"/>
<xsl:param name="rule"/>
<xsl:param name="enabled"/>
<xsl:text> </xsl:text>
<xsl:value-of select="$state"/>
<xsl:text> -> "</xsl:text>
<xsl:value-of select="$state"/>
<xsl:text>R</xsl:text>
<xsl:value-of select="$rule"/>
<xsl:if test='$enabled = "false"'>
<xsl:text>d</xsl:text>
</xsl:if>
<xsl:text>" [</xsl:text>
</xsl:template>
<xsl:template name="reduction-node">
<xsl:param name="state"/>
<xsl:param name="rule"/>
<xsl:param name="color"/>
<xsl:text> "</xsl:text>
<xsl:value-of select="$state"/>
<xsl:text>R</xsl:text>
<xsl:value-of select="$rule"/>
<xsl:if test="$color = 5">
<xsl:text>d</xsl:text>
</xsl:if>
<xsl:text>" [label="</xsl:text>
<xsl:choose>
<xsl:when test="$rule = 0">
<xsl:text>Acc", fillcolor=1</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>R</xsl:text>
<xsl:value-of select="$rule"/>
<xsl:text>", fillcolor=</xsl:text>
<xsl:value-of select="$color"/>
</xsl:otherwise>
</xsl:choose>
<xsl:text>, shape=diamond, style=filled]&#10;</xsl:text>
</xsl:template>
<xsl:template match="transition">
<xsl:call-template name="output-edge">
<xsl:with-param name="src" select="../../../@number"/>
<xsl:with-param name="dst" select="@state"/>
<xsl:with-param name="style">
<xsl:choose>
<xsl:when test="@symbol = 'error'">
<xsl:text>dotted</xsl:text>
</xsl:when>
<xsl:when test="@type = 'shift'">
<xsl:text>solid</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>dashed</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:with-param>
<xsl:with-param name="label">
<xsl:if test="not(@symbol = 'error')">
<xsl:value-of select="@symbol"/>
</xsl:if>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="output-node">
<xsl:param name="number"/>
<xsl:param name="label"/>
<xsl:text> </xsl:text>
<xsl:value-of select="$number"/>
<xsl:text> [label="</xsl:text>
<xsl:text>State </xsl:text>
<xsl:value-of select="$number"/>
<xsl:text>\n</xsl:text>
<xsl:call-template name="escape">
<xsl:with-param name="subject" select="$label"/>
</xsl:call-template>
<xsl:text>\l"]&#10;</xsl:text>
</xsl:template>
<xsl:template name="output-edge">
<xsl:param name="src"/>
<xsl:param name="dst"/>
<xsl:param name="style"/>
<xsl:param name="label"/>
<xsl:text> </xsl:text>
<xsl:value-of select="$src"/>
<xsl:text> -> </xsl:text>
<xsl:value-of select="$dst"/>
<xsl:text> [style=</xsl:text>
<xsl:value-of select="$style"/>
<xsl:if test="$label and $label != ''">
<xsl:text> label="</xsl:text>
<xsl:call-template name="escape">
<xsl:with-param name="subject" select="$label"/>
</xsl:call-template>
<xsl:text>"</xsl:text>
</xsl:if>
<xsl:text>]&#10;</xsl:text>
</xsl:template>
<xsl:template name="escape">
<xsl:param name="subject"/> <!-- required -->
<xsl:call-template name="string-replace">
<xsl:with-param name="subject">
<xsl:call-template name="string-replace">
<xsl:with-param name="subject">
<xsl:call-template name="string-replace">
<xsl:with-param name="subject" select="$subject"/>
<xsl:with-param name="search" select="'\'"/>
<xsl:with-param name="replace" select="'\\'"/>
</xsl:call-template>
</xsl:with-param>
<xsl:with-param name="search" select="'&quot;'"/>
<xsl:with-param name="replace" select="'\&quot;'"/>
</xsl:call-template>
</xsl:with-param>
<xsl:with-param name="search" select="'&#10;'"/>
<xsl:with-param name="replace" select="'\l'"/>
</xsl:call-template>
</xsl:template>
<xsl:template name="string-replace">
<xsl:param name="subject"/>
<xsl:param name="search"/>
<xsl:param name="replace"/>
<xsl:choose>
<xsl:when test="contains($subject, $search)">
<xsl:variable name="before" select="substring-before($subject, $search)"/>
<xsl:variable name="after" select="substring-after($subject, $search)"/>
<xsl:value-of select="$before"/>
<xsl:value-of select="$replace"/>
<xsl:call-template name="string-replace">
<xsl:with-param name="subject" select="$after"/>
<xsl:with-param name="search" select="$search"/>
<xsl:with-param name="replace" select="$replace"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$subject"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="lpad">
<xsl:param name="str" select="''"/>
<xsl:param name="pad" select="0"/>
<xsl:variable name="diff" select="$pad - string-length($str)" />
<xsl:choose>
<xsl:when test="$diff &lt; 0">
<xsl:value-of select="$str"/>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="space">
<xsl:with-param name="repeat" select="$diff"/>
</xsl:call-template>
<xsl:value-of select="$str"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>

View File

@@ -3,7 +3,7 @@
<!--
xml2text.xsl - transform Bison XML Report into plain text.
Copyright (C) 2007, 2008 Free Software Foundation, Inc.
Copyright (C) 2007-2013 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
@@ -230,7 +230,7 @@
<xsl:template match="automaton/state">
<xsl:param name="pad"/>
<xsl:text>&#10;&#10;</xsl:text>
<xsl:text>state </xsl:text>
<xsl:text>State </xsl:text>
<xsl:value-of select="@number"/>
<xsl:text>&#10;&#10;</xsl:text>
<xsl:apply-templates select="itemset/item">
@@ -253,9 +253,9 @@
<xsl:text>&#10;</xsl:text>
<xsl:apply-templates select="transition[@type = $type]">
<xsl:with-param name="pad">
<xsl:call-template name="max-width-symbol">
<xsl:with-param name="node" select="transition[@type = $type]"/>
</xsl:call-template>
<xsl:call-template name="max-width-symbol">
<xsl:with-param name="node" select="transition[@type = $type]"/>
</xsl:call-template>
</xsl:with-param>
</xsl:apply-templates>
</xsl:if>
@@ -266,9 +266,9 @@
<xsl:text>&#10;</xsl:text>
<xsl:apply-templates select="error">
<xsl:with-param name="pad">
<xsl:call-template name="max-width-symbol">
<xsl:with-param name="node" select="error"/>
</xsl:call-template>
<xsl:call-template name="max-width-symbol">
<xsl:with-param name="node" select="error"/>
</xsl:call-template>
</xsl:with-param>
</xsl:apply-templates>
</xsl:if>
@@ -279,9 +279,9 @@
<xsl:text>&#10;</xsl:text>
<xsl:apply-templates select="reduction">
<xsl:with-param name="pad">
<xsl:call-template name="max-width-symbol">
<xsl:with-param name="node" select="reduction"/>
</xsl:call-template>
<xsl:call-template name="max-width-symbol">
<xsl:with-param name="node" select="reduction"/>
</xsl:call-template>
</xsl:with-param>
</xsl:apply-templates>
</xsl:if>
@@ -290,7 +290,7 @@
<xsl:template match="item">
<xsl:param name="pad"/>
<xsl:param name="prev-rule-number"
select="preceding-sibling::item[1]/@rule-number"/>
select="preceding-sibling::item[1]/@rule-number"/>
<xsl:apply-templates
select="key('bison:ruleByNumber', current()/@rule-number)"
>
@@ -329,14 +329,14 @@
<xsl:choose>
<xsl:when test="$itemset != 'true' and $prev-lhs = lhs[text()]">
<xsl:call-template name="lpad">
<xsl:with-param name="str" select="'|'"/>
<xsl:with-param name="pad" select="number(string-length(lhs[text()])) + 1"/>
<xsl:with-param name="str" select="'|'"/>
<xsl:with-param name="pad" select="number(string-length(lhs[text()])) + 1"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="$itemset = 'true' and $prev-lhs = lhs[text()]">
<xsl:call-template name="lpad">
<xsl:with-param name="str" select="'|'"/>
<xsl:with-param name="pad" select="number(string-length(lhs[text()])) + 1"/>
<xsl:with-param name="str" select="'|'"/>
<xsl:with-param name="pad" select="number(string-length(lhs[text()])) + 1"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
@@ -373,7 +373,7 @@
</xsl:template>
<xsl:template match="empty">
<xsl:text> /* empty */</xsl:text>
<xsl:text> %empty</xsl:text>
</xsl:template>
<xsl:template match="lookaheads">
@@ -442,7 +442,7 @@
<xsl:value-of select="@rule"/>
<xsl:text> (</xsl:text>
<xsl:value-of
select="key('bison:ruleByNumber', current()/@rule)/lhs[text()]"/>
select="key('bison:ruleByNumber', current()/@rule)/lhs[text()]"/>
<xsl:text>)</xsl:text>
</xsl:otherwise>
</xsl:choose>
@@ -479,9 +479,9 @@
<xsl:variable name="longest">
<xsl:for-each select="$node">
<xsl:sort data-type="number" select="string-length(@symbol)"
order="descending"/>
order="descending"/>
<xsl:if test="position() = 1">
<xsl:value-of select="string-length(@symbol)"/>
<xsl:value-of select="string-length(@symbol)"/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
@@ -498,7 +498,7 @@
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="space">
<xsl:with-param name="repeat" select="$diff"/>
<xsl:with-param name="repeat" select="$diff"/>
</xsl:call-template>
<xsl:value-of select="$str"/>
</xsl:otherwise>
@@ -516,24 +516,12 @@
<xsl:otherwise>
<xsl:value-of select="$str"/>
<xsl:call-template name="space">
<xsl:with-param name="repeat" select="$diff"/>
<xsl:with-param name="repeat" select="$diff"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="space">
<xsl:param name="repeat">0</xsl:param>
<xsl:param name="fill" select="' '"/>
<xsl:if test="number($repeat) &gt;= 1">
<xsl:call-template name="space">
<xsl:with-param name="repeat" select="$repeat - 1"/>
<xsl:with-param name="fill" select="$fill"/>
</xsl:call-template>
<xsl:value-of select="$fill"/>
</xsl:if>
</xsl:template>
<xsl:template name="line-wrap">
<xsl:param name="line-length"/> <!-- required -->
<xsl:param name="first-line-length" select="$line-length"/>

View File

@@ -3,7 +3,7 @@
<!--
xml2html.xsl - transform Bison XML Report into XHTML.
Copyright (C) 2007, 2008 Free Software Foundation, Inc.
Copyright (C) 2007-2013 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
@@ -31,32 +31,32 @@
<xsl:import href="bison.xsl"/>
<xsl:output method="xml" encoding="UTF-8"
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
indent="yes"/>
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
indent="yes"/>
<xsl:template match="/">
<html>
<head>
<title>
<xsl:value-of select="bison-xml-report/filename"/>
<xsl:text> - GNU Bison XML Automaton Report</xsl:text>
<xsl:value-of select="bison-xml-report/filename"/>
<xsl:text> - GNU Bison XML Automaton Report</xsl:text>
</title>
<style type="text/css"><![CDATA[
body {
font-family: "Nimbus Sans L", Arial, sans-serif;
font-size: 9pt;
font-size: 9pt;
}
a:link {
color: #1f00ff;
text-decoration: none;
color: #1f00ff;
text-decoration: none;
}
a:visited {
color: #1f00ff;
text-decoration: none;
color: #1f00ff;
text-decoration: none;
}
a:hover {
color: red;
color: red;
}
#menu a {
text-decoration: underline;
@@ -109,21 +109,21 @@
<li>
<a href="#reductions">Reductions</a>
<ul class="lower-alpha">
<li><a href="#nonterminals_useless_in_grammar">Nonterminals useless in grammar</a></li>
<li><a href="#terminals_unused_in_grammar">Terminals unused in grammar</a></li>
<li><a href="#rules_useless_in_grammar">Rules useless in grammar</a></li>
<xsl:if test="grammar/rules/rule[@usefulness='useless-in-parser']">
<li><a href="#rules_useless_in_parser">Rules useless in parser due to conflicts</a></li>
</xsl:if>
<li><a href="#nonterminals_useless_in_grammar">Nonterminals useless in grammar</a></li>
<li><a href="#terminals_unused_in_grammar">Terminals unused in grammar</a></li>
<li><a href="#rules_useless_in_grammar">Rules useless in grammar</a></li>
<xsl:if test="grammar/rules/rule[@usefulness='useless-in-parser']">
<li><a href="#rules_useless_in_parser">Rules useless in parser due to conflicts</a></li>
</xsl:if>
</ul>
</li>
<li><a href="#conflicts">Conflicts</a></li>
<li>
<a href="#grammar">Grammar</a>
<ul class="lower-alpha">
<li><a href="#grammar">Itemset</a></li>
<li><a href="#terminals">Terminal symbols</a></li>
<li><a href="#nonterminals">Nonterminal symbols</a></li>
<li><a href="#grammar">Itemset</a></li>
<li><a href="#terminals">Terminal symbols</a></li>
<li><a href="#nonterminals">Nonterminal symbols</a></li>
</ul>
</li>
<li><a href="#automaton">Automaton</a></li>
@@ -154,9 +154,9 @@
<xsl:if test="nonterminal[@usefulness='useless-in-grammar']">
<p class="pre">
<xsl:for-each select="nonterminal[@usefulness='useless-in-grammar']">
<xsl:text> </xsl:text>
<xsl:value-of select="@name"/>
<xsl:text>&#10;</xsl:text>
<xsl:text> </xsl:text>
<xsl:value-of select="@name"/>
<xsl:text>&#10;</xsl:text>
</xsl:for-each>
<xsl:text>&#10;&#10;</xsl:text>
</p>
@@ -173,9 +173,9 @@
<p class="pre">
<xsl:for-each select="terminal[@usefulness='unused-in-grammar']">
<xsl:sort select="@symbol-number" data-type="number"/>
<xsl:text> </xsl:text>
<xsl:value-of select="@name"/>
<xsl:text>&#10;</xsl:text>
<xsl:text> </xsl:text>
<xsl:value-of select="@name"/>
<xsl:text>&#10;</xsl:text>
</xsl:for-each>
<xsl:text>&#10;&#10;</xsl:text>
</p>
@@ -381,7 +381,7 @@
<h3>
<a>
<xsl:attribute name="name">
<xsl:value-of select="concat('state_', @number)"/>
<xsl:value-of select="concat('state_', @number)"/>
</xsl:attribute>
</a>
<xsl:text>state </xsl:text>
@@ -410,9 +410,9 @@
<xsl:text>&#10;</xsl:text>
<xsl:apply-templates select="transition[@type = $type]">
<xsl:with-param name="pad">
<xsl:call-template name="max-width-symbol">
<xsl:with-param name="node" select="transition[@type = $type]"/>
</xsl:call-template>
<xsl:call-template name="max-width-symbol">
<xsl:with-param name="node" select="transition[@type = $type]"/>
</xsl:call-template>
</xsl:with-param>
</xsl:apply-templates>
</xsl:if>
@@ -423,9 +423,9 @@
<xsl:text>&#10;</xsl:text>
<xsl:apply-templates select="error">
<xsl:with-param name="pad">
<xsl:call-template name="max-width-symbol">
<xsl:with-param name="node" select="error"/>
</xsl:call-template>
<xsl:call-template name="max-width-symbol">
<xsl:with-param name="node" select="error"/>
</xsl:call-template>
</xsl:with-param>
</xsl:apply-templates>
</xsl:if>
@@ -436,9 +436,9 @@
<xsl:text>&#10;</xsl:text>
<xsl:apply-templates select="reduction">
<xsl:with-param name="pad">
<xsl:call-template name="max-width-symbol">
<xsl:with-param name="node" select="reduction"/>
</xsl:call-template>
<xsl:call-template name="max-width-symbol">
<xsl:with-param name="node" select="reduction"/>
</xsl:call-template>
</xsl:with-param>
</xsl:apply-templates>
</xsl:if>
@@ -447,7 +447,7 @@
<xsl:template match="item">
<xsl:param name="pad"/>
<xsl:param name="prev-rule-number"
select="preceding-sibling::item[1]/@rule-number"/>
select="preceding-sibling::item[1]/@rule-number"/>
<xsl:apply-templates
select="key('bison:ruleByNumber', current()/@rule-number)"
>
@@ -477,7 +477,7 @@
<xsl:if test="$itemset != 'true'">
<a>
<xsl:attribute name="name">
<xsl:value-of select="concat('rule_', @number)"/>
<xsl:value-of select="concat('rule_', @number)"/>
</xsl:attribute>
</a>
</xsl:if>
@@ -486,19 +486,19 @@
<xsl:choose>
<xsl:when test="$itemset = 'true'">
<a>
<xsl:attribute name="href">
<xsl:value-of select="concat('#rule_', @number)"/>
</xsl:attribute>
<xsl:call-template name="lpad">
<xsl:with-param name="str" select="string(@number)"/>
<xsl:with-param name="pad" select="number($pad)"/>
</xsl:call-template>
<xsl:attribute name="href">
<xsl:value-of select="concat('#rule_', @number)"/>
</xsl:attribute>
<xsl:call-template name="lpad">
<xsl:with-param name="str" select="string(@number)"/>
<xsl:with-param name="pad" select="number($pad)"/>
</xsl:call-template>
</a>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="lpad">
<xsl:with-param name="str" select="string(@number)"/>
<xsl:with-param name="pad" select="number($pad)"/>
<xsl:with-param name="str" select="string(@number)"/>
<xsl:with-param name="pad" select="number($pad)"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
@@ -508,19 +508,19 @@
<xsl:choose>
<xsl:when test="$itemset != 'true' and $prev-lhs = lhs[text()]">
<xsl:call-template name="lpad">
<xsl:with-param name="str" select="'|'"/>
<xsl:with-param name="pad" select="number(string-length(lhs[text()])) + 2"/>
<xsl:with-param name="str" select="'|'"/>
<xsl:with-param name="pad" select="number(string-length(lhs[text()])) + 2"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="$itemset = 'true' and $prev-lhs = lhs[text()]">
<xsl:call-template name="lpad">
<xsl:with-param name="str" select="'|'"/>
<xsl:with-param name="pad" select="number(string-length(lhs[text()])) + 2"/>
<xsl:with-param name="str" select="'|'"/>
<xsl:with-param name="pad" select="number(string-length(lhs[text()])) + 2"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<span class="i">
<xsl:value-of select="lhs"/>
<xsl:value-of select="lhs"/>
</span>
<xsl:text> &#8594;</xsl:text>
</xsl:otherwise>
@@ -589,18 +589,18 @@
<xsl:choose>
<xsl:when test="@type = 'shift'">
<a>
<xsl:attribute name="href">
<xsl:value-of select="concat('#state_', @state)"/>
</xsl:attribute>
<xsl:value-of select="concat('shift, and go to state ', @state)"/>
<xsl:attribute name="href">
<xsl:value-of select="concat('#state_', @state)"/>
</xsl:attribute>
<xsl:value-of select="concat('shift, and go to state ', @state)"/>
</a>
</xsl:when>
<xsl:when test="@type = 'goto'">
<a>
<xsl:attribute name="href">
<xsl:value-of select="concat('#state_', @state)"/>
</xsl:attribute>
<xsl:value-of select="concat('go to state ', @state)"/>
<xsl:attribute name="href">
<xsl:value-of select="concat('#state_', @state)"/>
</xsl:attribute>
<xsl:value-of select="concat('go to state ', @state)"/>
</a>
</xsl:when>
</xsl:choose>
@@ -637,10 +637,10 @@
</xsl:when>
<xsl:otherwise>
<a>
<xsl:attribute name="href">
<xsl:value-of select="concat('#rule_', @rule)"/>
</xsl:attribute>
<xsl:value-of select="concat('reduce using rule ', @rule)"/>
<xsl:attribute name="href">
<xsl:value-of select="concat('#rule_', @rule)"/>
</xsl:attribute>
<xsl:value-of select="concat('reduce using rule ', @rule)"/>
</a>
<xsl:text> (</xsl:text>
<xsl:value-of
@@ -687,9 +687,9 @@
<xsl:variable name="longest">
<xsl:for-each select="$node">
<xsl:sort data-type="number" select="string-length(@symbol)"
order="descending"/>
order="descending"/>
<xsl:if test="position() = 1">
<xsl:value-of select="string-length(@symbol)"/>
<xsl:value-of select="string-length(@symbol)"/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
@@ -706,7 +706,7 @@
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="space">
<xsl:with-param name="repeat" select="$diff"/>
<xsl:with-param name="repeat" select="$diff"/>
</xsl:call-template>
<xsl:value-of select="$str"/>
</xsl:otherwise>
@@ -724,7 +724,7 @@
<xsl:otherwise>
<xsl:value-of select="$str"/>
<xsl:call-template name="space">
<xsl:with-param name="repeat" select="$diff"/>
<xsl:with-param name="repeat" select="$diff"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>

1915
gnuwin32/bin/data/yacc.c Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

BIN
gnuwin32/bin/flex.exe Normal file → Executable file

Binary file not shown.

Binary file not shown.

View File

@@ -1,2 +0,0 @@
#! /bin/sh
exec 'c:/progra~1/bison/bin/bison' -y "$@"

View File

@@ -1,54 +0,0 @@
* Bison-2.4.1 for Windows *
===========================
What is it?
-----------
Bison: Yacc-compatible parser generator
Description
-----------
Bison is a general purpose parser generator that converts a grammar description for an LALR(1) context-free grammar into a C program to parse that grammar. Bison can be used to develop a wide range of language parsers, from ones used in simple desk calculators to complex programming languages. Bison is upwardly compatible with Yacc, so any correctly written Yacc grammar should work with Bison without any changes. If you know Yacc, you shouldn't have any trouble using Bison. You do need to be very proficient in C programming to be able to use Bison. Bison is only needed on systems that are used for development. If your system will be used for C development, you should install Bison. The package contains also the -ly library sometimes used by programs using Bison-generated parsers. If you are developing programs using Bison, you might want to link with this library. This library is not required by all Bison-generated parsers, but may be employed by simple programs to supply minimal support for the generated parsers.
Homepage
--------
http://www.gnu.org/software/bison/bison.html
Sources: http://ftp.gnu.org/gnu/bison/bison-2.4.1.tar.gz
System
------
- Win32, i.e. MS-Windows 95 / 98 / ME / NT / 2000 / XP / 2003 / Vista / 2008 with msvcrt.dll
- if msvcrt.dll is not in your Windows/System folder, get it from
Microsoft <http://support.microsoft.com/kb/259403>
or by installing Internet Explorer 4.0 or higher
<http://www.microsoft.com/windows/ie>
- libintl-3 <http://gnuwin32.sourceforge.net/packages/libintl.htm>
- libiconv-2 <http://gnuwin32.sourceforge.net/packages/libiconv.htm>
- regex <http://gnuwin32.sourceforge.net/packages/regex.htm>
- m4 <http://gnuwin32.sourceforge.net/packages/m4.htm>
Notes
-----
- Bugs and questions on this MS-Windows port: gnuwin32@users.sourceforge.net
Package Availability
--------------------
- in: http://gnuwin32.sourceforge.net
Installation
------------
Bison may be installed in any directory, provided the subdirectory structure is maintained. Native language support is also active.
Sources
-------
- bison-2.4.1-src.zip
Compilation
-----------
The package has been compiled with GNU auto-tools, GNU make, and Mingw
(GCC for MS-Windows). Any differences from the original sources are given
in bison-2.4.1-GnuWin32.diffs in bison-2.4.1-src.zip. Libraries needed
for compilation can be found at the lines starting with 'LIBS = ' in the
Makefiles. Usually, these are standard libraries provided with Mingw, or
libraries from the package itself; 'gw32c' refers to the libgw32c package,
which provides MS-Windows substitutes or stubs for functions normally found in
Unix. For more information, see: http://gnuwin32.sourceforge.net/compile.html
and http://gnuwin32.sourceforge.net/packages/libgw32c.htm.

File diff suppressed because it is too large Load Diff

View File

@@ -1,8 +0,0 @@
Authors of GNU Bison.
Bison was written primarily by Robert Corbett.
Richard Stallman made it Yacc-compatible.
Wilfred Hansen of Carnegie Mellon University added multicharacter
string literals and other features.

File diff suppressed because it is too large Load Diff

View File

@@ -1,291 +0,0 @@
Installation Instructions
*************************
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
2006, 2007, 2008 Free Software Foundation, Inc.
This file is free documentation; the Free Software Foundation gives
unlimited permission to copy, distribute and modify it.
Basic Installation
==================
Briefly, the shell commands `./configure; make; make install' should
configure, build, and install this package. The following
more-detailed instructions are generic; see the `README' file for
instructions specific to this package.
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
those values to create a `Makefile' in each directory of the package.
It may also create one or more `.h' files containing system-dependent
definitions. Finally, it creates a shell script `config.status' that
you can run in the future to recreate the current configuration, and a
file `config.log' containing compiler output (useful mainly for
debugging `configure').
It can also use an optional file (typically called `config.cache'
and enabled with `--cache-file=config.cache' or simply `-C') that saves
the results of its tests to speed up reconfiguring. Caching is
disabled by default to prevent problems with accidental use of stale
cache files.
If you need to do unusual things to compile the package, please try
to figure out how `configure' could check whether to do them, and mail
diffs or instructions to the address given in the `README' so they can
be considered for the next release. If you are using the cache, and at
some point `config.cache' contains results you don't want to keep, you
may remove or edit it.
The file `configure.ac' (or `configure.in') is used to create
`configure' by a program called `autoconf'. You need `configure.ac' if
you want to change it or regenerate `configure' using a newer version
of `autoconf'.
The simplest way to compile this package is:
1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system.
Running `configure' might take a while. While running, it prints
some messages telling which features it is checking for.
2. Type `make' to compile the package.
3. Optionally, type `make check' to run any self-tests that come with
the package.
4. Type `make install' to install the programs and any data files and
documentation.
5. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for
a different kind of computer), type `make distclean'. There is
also a `make maintainer-clean' target, but that is intended mainly
for the package's developers. If you use it, you may have to get
all sorts of other programs in order to regenerate files that came
with the distribution.
6. Often, you can also type `make uninstall' to remove the installed
files again.
Compilers and Options
=====================
Some systems require unusual options for compilation or linking that
the `configure' script does not know about. Run `./configure --help'
for details on some of the pertinent environment variables.
You can give `configure' initial values for configuration parameters
by setting variables in the command line or in the environment. Here
is an example:
./configure CC=c99 CFLAGS=-g LIBS=-lposix
*Note Defining Variables::, for more details.
Compiling For Multiple Architectures
====================================
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you can use GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
source code in the directory that `configure' is in and in `..'.
With a non-GNU `make', it is safer to compile the package for one
architecture at a time in the source code directory. After you have
installed the package for one architecture, use `make distclean' before
reconfiguring for another architecture.
On MacOS X 10.5 and later systems, you can create libraries and
executables that work on multiple system types--known as "fat" or
"universal" binaries--by specifying multiple `-arch' options to the
compiler but only a single `-arch' option to the preprocessor. Like
this:
./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
CPP="gcc -E" CXXCPP="g++ -E"
This is not guaranteed to produce working output in all cases, you
may have to build one architecture at a time and combine the results
using the `lipo' tool if you have problems.
Installation Names
==================
By default, `make install' installs the package's commands under
`/usr/local/bin', include files under `/usr/local/include', etc. You
can specify an installation prefix other than `/usr/local' by giving
`configure' the option `--prefix=PREFIX'.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
PREFIX as the prefix for installing programs and libraries.
Documentation and other data files still use the regular prefix.
In addition, if you use an unusual directory layout you can give
options like `--bindir=DIR' to specify different values for particular
kinds of files. Run `configure --help' for a list of the directories
you can set and what kinds of files go in them.
If the package supports it, you can cause programs to be installed
with an extra prefix or suffix on their names by giving `configure' the
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
Optional Features
=================
Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
is something like `gnu-as' or `x' (for the X Window System). The
`README' should mention any `--enable-' and `--with-' options that the
package recognizes.
For packages that use the X Window System, `configure' can usually
find the X include and library files automatically, but if it doesn't,
you can use the `configure' options `--x-includes=DIR' and
`--x-libraries=DIR' to specify their locations.
Particular systems
==================
On HP-UX, the default C compiler is not ANSI C compatible. If GNU
CC is not installed, it is recommended to use the following options in
order to use an ANSI C compiler:
./configure CC="cc -Ae"
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
parse its `<wchar.h>' header file. The option `-nodtk' can be used as
a workaround. If GNU CC is not installed, it is therefore recommended
to try
./configure CC="cc"
and if that doesn't work, try
./configure CC="cc -nodtk"
Specifying the System Type
==========================
There may be some features `configure' cannot figure out
automatically, but needs to determine by the type of machine the package
will run on. Usually, assuming the package is built to be run on the
_same_ architectures, `configure' can figure that out, but if it prints
a message saying it cannot guess the machine type, give it the
`--build=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name which has the form:
CPU-COMPANY-SYSTEM
where SYSTEM can have one of these forms:
OS KERNEL-OS
See the file `config.sub' for the possible values of each field. If
`config.sub' isn't included in this package, then this package doesn't
need to know the machine type.
If you are _building_ compiler tools for cross-compiling, you should
use the option `--target=TYPE' to select the type of system they will
produce code for.
If you want to _use_ a cross compiler, that generates code for a
platform different from the build platform, you should specify the
"host" platform (i.e., that on which the generated programs will
eventually be run) with `--host=TYPE'.
Sharing Defaults
================
If you want to set default values for `configure' scripts to share,
you can create a site shell script called `config.site' that gives
default values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script.
A warning: not all `configure' scripts look for a site script.
Defining Variables
==================
Variables not defined in a site shell script can be set in the
environment passed to `configure'. However, some packages may run
configure again during the build, and the customized values of these
variables may be lost. In order to avoid this problem, you should set
them in the `configure' command line, using `VAR=value'. For example:
./configure CC=/usr/local2/bin/gcc
causes the specified `gcc' to be used as the C compiler (unless it is
overridden in the site shell script).
Unfortunately, this technique does not work for `CONFIG_SHELL' due to
an Autoconf bug. Until the bug is fixed you can use this workaround:
CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
`configure' Invocation
======================
`configure' recognizes the following options to control how it
operates.
`--help'
`-h'
Print a summary of all of the options to `configure', and exit.
`--help=short'
`--help=recursive'
Print a summary of the options unique to this package's
`configure', and exit. The `short' variant lists options used
only in the top level, while the `recursive' variant lists options
also present in any nested packages.
`--version'
`-V'
Print the version of Autoconf used to generate the `configure'
script, and exit.
`--cache-file=FILE'
Enable the cache: use and save the results of the tests in FILE,
traditionally `config.cache'. FILE defaults to `/dev/null' to
disable caching.
`--config-cache'
`-C'
Alias for `--cache-file=config.cache'.
`--quiet'
`--silent'
`-q'
Do not print messages saying which checks are being made. To
suppress all normal output, redirect it to `/dev/null' (any error
messages will still be shown).
`--srcdir=DIR'
Look for the package's source code in directory DIR. Usually
`configure' can determine that directory automatically.
`--prefix=DIR'
Use DIR as the installation prefix. *Note Installation Names::
for more details, including other options available for fine-tuning
the installation locations.
`--no-create'
`-n'
Run the configure checks, but stop before creating any output
files.
`configure' also accepts some other, not widely useful, options. Run
`configure --help' for more details.

File diff suppressed because it is too large Load Diff

View File

@@ -1,43 +0,0 @@
This package contains the GNU Bison parser generator.
See the file INSTALL for generic compilation and installation instructions.
See the section FAQ in the documentation (doc/bison.info) for
frequently asked questions. The documentation is also available in
PDF and HTML, provided you have a recent version of Texinfo installed:
run "make pdf" or "make html".
Bison requires GNU m4 1.4.6 or later. See:
ftp://ftp.gnu.org/gnu/m4/m4-1.4.6.tar.gz
Bison can work with pre-1.4.6 distributions of GNU m4 if they are
sufficiently patched, but if you encounter a bug with an older
distribution and report a bug we will probably suggest that you
upgrade to 1.4.6 as the first step in trying to fix it.
Please send bug reports to <bug-bison@gnu.org>. Please include the
version number from `bison --version', and a complete, self-contained
test case in each bug report.
If you have questions about using Bison and the documentation does
not answer them, please send mail to <help-bison@gnu.org>.
-----
Copyright (C) 1992, 1998, 1999, 2003, 2004, 2005, 2008 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@@ -1,30 +0,0 @@
-*- text -*-
This is a test release of this package. Using it more or less
implicitly signs you up to help us find whatever problems you report.
The documentation still needs more work. Suggestions welcome.
Patches even more welcome.
Please send comments and problem reports about this test release to
<bug-bison@gnu.org>. This program will get better only if you report
the problems you encounter.
-----
Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Bison.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@@ -1,104 +0,0 @@
Bison was originally written by Robert Corbett. It would not be what
it is today without the invaluable help of these people:
Airy Andre Airy.Andre@edf.fr
Akim Demaille akim@freefriends.org
Albert Chin-A-Young china@thewrittenword.com
Alexander Belopolsky alexb@rentec.com
Alexandre Duret-Lutz adl@src.lip6.fr
Andreas Schwab schwab@suse.de
Andrew Suffield asuffield@users.sourceforge.net
Anthony Heading ajrh@ajrh.net
Arnold Robbins arnold@skeeve.com
Art Haas ahaas@neosoft.com
Baron Schwartz baron@sequent.org
Benoit Perrot benoit.perrot@epita.fr
Bert Deknuydt Bert.Deknuydt@esat.kuleuven.ac.be
Bob Rossi bob@brasko.net
Brandon Lucia blucia@gmail.com
Bruce Lilly blilly@erols.com
Bruno Haible bruno@clisp.org
Charles-Henri de Boysson de-boy_c@epita.fr
Christian Burger cburger@sunysb.edu
Cris Bailiff c.bailiff+bison@awayweb.com
Cris van Pelt cris@amf03054.office.wxs.nl
Csaba Raduly csaba_22@yahoo.co.uk
Daniel Hagerty hag@gnu.org
David J. MacKenzie djm@gnu.org
Derek M. Jones derek@knosof.co.uk
Di-an Jan dianj@freeshell.org
Dick Streefland dick.streefland@altium.nl
Enrico Scholz enrico.scholz@informatik.tu-chemnitz.de
Eric Blake ebb9@byu.net
Evgeny Stambulchik fnevgeny@plasma-gate.weizmann.ac.il
Fabrice Bauzac noon@cote-dazur.com
Florian Krohm florian@edamail.fishkill.ibm.com
Frank Heckenbach frank@g-n-u.de
Frans Englich frans.englich@telia.com
Georg Sauthoff gsauthof@TechFak.Uni-Bielefeld.DE
Goran Uddeborg goeran@uddeborg.se
Guido Trentalancia trentalg@aston.ac.uk
H. Merijn Brand h.m.brand@hccnet.nl
Hans Aberg haberg@matematik.su.se
Jan Nieuwenhuizen janneke@gnu.org
Jesse Thilo jthilo@gnu.org
Jim Kent jkent@arch.sel.sony.com
Jim Meyering jim@meyering.net
Joel E. Denny jdenny@ces.clemson.edu
Juan Manuel Guerrero juan.guerrero@gmx.de
Kees Zeelenberg kzlg@users.sourceforge.net
Keith Browne kbrowne@legato.com
Laurent Mascherpa laurent.mascherpa@epita.fr
Magnus Fromreide magfr@lysator.liu.se
Marc Autret autret_m@epita.fr
Martin Mokrejs mmokrejs@natur.cuni.cz
Martin Nylin martin.nylin@linuxmail.org
Matt Kraai kraai@alumni.cmu.edu
Matt Rosing rosing@peakfive.com
Michael Hayes m.hayes@elec.canterbury.ac.nz
Mickael Labau labau_m@epita.fr
Mike Castle dalgoda@ix.netcom.com
Neil Booth NeilB@earthling.net
Nelson H. F. Beebe beebe@math.utah.edu
Nicolas Burrus nicolas.burrus@epita.fr
Nicolas Tisserand nicolas.tisserand@epita.fr
Noah Friedman friedman@gnu.org
Oleg Smolsky oleg.smolsky@pacific-simulators.co.nz
Paolo Bonzini bonzini@gnu.org
Pascal Bart pascal.bart@epita.fr
Paul Eggert eggert@cs.ucla.edu
Paul Hilfinger Hilfinger@CS.Berkeley.EDU
Per Allansson per@appgate.com
Peter Fales psfales@lucent.com
Peter Hamorsky hamo@upjs.sk
Piotr Gackiewicz gacek@intertel.com.pl
Quoc Peyrot chojin@lrde.epita.fr
R Blake blakers@mac.com
Raja R Harinath harinath@cs.umn.edu
Richard Stallman rms@gnu.org
Robert Anisko anisko_r@epita.fr
Satya Kiran Popuri satyakiran@gmail.com
Sebastien Fricker sebastien.fricker@gmail.com
Sebastian Setzer sebastian.setzer.ext@siemens.com
Sergei Steshenko sergstesh@yahoo.com
Shura debil_urod@ngs.ru
Steve Murphy murf@parsetree.com
Tim Josling tej@melbpc.org.au
Tim Van Holder tim.van.holder@pandora.be
Tom Lane tgl@sss.pgh.pa.us
Tom Tromey tromey@cygnus.com
Tommy Nordgren tommy.nordgren@chello.se
Troy A. Johnson troyj@ecn.purdue.edu
Tys Lefering twlevo@xs4all.nl
Vin Shelton acs@alumni.princeton.edu
Wayne Green wayne@infosavvy.com
Wolfram Wagner ww@mpi-sb.mpg.de
Wwp subscript@free.fr
Zack Weinberg zack@codesourcery.com
Many people are not named here because we lost track of them. We
thank them! Please, help us keeping this list up to date.
Local Variables:
mode: text
End:

View File

@@ -1,309 +0,0 @@
-*- outline -*-
* Header guards
From Franc,ois: should we keep the directory part in the CPP guard?
* Yacc.c: CPP Macros
Do some people use YYPURE, YYLSP_NEEDED like we do in the test suite?
They should not: it is not documented. But if they need to, let's
find something clean (not like YYLSP_NEEDED...).
* Installation
* Documentation
Before releasing, make sure the documentation ("Understanding your
parser") refers to the current `output' format.
* lalr1.cc
** vector
Move to using vector, drop stack.hh.
** I18n
Catch up with yacc.c.
* Report
** GLR
How would Paul like to display the conflicted actions? In particular,
what when two reductions are possible on a given lookahead token, but one is
part of $default. Should we make the two reductions explicit, or just
keep $default? See the following point.
** Disabled Reductions
See `tests/conflicts.at (Defaulted Conflicted Reduction)', and decide
what we want to do.
** Documentation
Extend with error productions. The hard part will probably be finding
the right rule so that a single state does not exhibit too many yet
undocumented ``features''. Maybe an empty action ought to be
presented too. Shall we try to make a single grammar with all these
features, or should we have several very small grammars?
** --report=conflict-path
Provide better assistance for understanding the conflicts by providing
a sample text exhibiting the (LALR) ambiguity. See the paper from
DeRemer and Penello: they already provide the algorithm.
** Statically check for potential ambiguities in GLR grammars. See
<http://www.i3s.unice.fr/~schmitz/papers.html#expamb> for an approach.
* Extensions
** Labeling the symbols
Have a look at the Lemon parser generator: instead of $1, $2 etc. they
can name the values. This is much more pleasant. For instance:
exp (res): exp (a) '+' exp (b) { $res = $a + $b; };
I love this. I have been bitten too often by the removal of the
symbol, and forgetting to shift all the $n to $n-1. If you are
unlucky, it compiles...
But instead of using $a etc., we can use regular variables. And
instead of using (), I propose to use `:' (again). Paul suggests
supporting `->' in addition to `:' to separate LHS and RHS. In other
words:
r:exp -> a:exp '+' b:exp { r = a + b; };
That requires an significant improvement of the grammar parser. Using
GLR would be nice. It also requires that Bison know the type of the
symbols (which will be useful for %include anyway). So we have some
time before...
Note that there remains the problem of locations: `@r'?
** $-1
We should find a means to provide an access to values deep in the
stack. For instance, instead of
baz: qux { $$ = $<foo>-1 + $<bar>0 + $1; }
we should be able to have:
foo($foo) bar($bar) baz($bar): qux($qux) { $baz = $foo + $bar + $qux; }
Or something like this.
** %if and the like
It should be possible to have %if/%else/%endif. The implementation is
not clear: should it be lexical or syntactic. Vadim Maslow thinks it
must be in the scanner: we must not parse what is in a switched off
part of %if. Akim Demaille thinks it should be in the parser, so as
to avoid falling into another CPP mistake.
** -D, --define-muscle NAME=VALUE
To define muscles via cli. Or maybe support directly NAME=VALUE?
** XML Output
There are couple of available extensions of Bison targeting some XML
output. Some day we should consider including them. One issue is
that they seem to be quite orthogonal to the parsing technique, and
seem to depend mostly on the possibility to have some code triggered
for each reduction. As a matter of fact, such hooks could also be
used to generate the yydebug traces. Some generic scheme probably
exists in there.
XML output for GNU Bison and gcc
http://www.cs.may.ie/~jpower/Research/bisonXML/
XML output for GNU Bison
http://yaxx.sourceforge.net/
* Unit rules
Maybe we could expand unit rules, i.e., transform
exp: arith | bool;
arith: exp '+' exp;
bool: exp '&' exp;
into
exp: exp '+' exp | exp '&' exp;
when there are no actions. This can significantly speed up some
grammars. I can't find the papers. In particular the book `LR
parsing: Theory and Practice' is impossible to find, but according to
`Parsing Techniques: a Practical Guide', it includes information about
this issue. Does anybody have it?
* Documentation
** History/Bibliography
Some history of Bison and some bibliography would be most welcome.
Are there any Texinfo standards for bibliography?
* Java, Fortran, etc.
* Coding system independence
Paul notes:
Currently Bison assumes 8-bit bytes (i.e. that UCHAR_MAX is
255). It also assumes that the 8-bit character encoding is
the same for the invocation of 'bison' as it is for the
invocation of 'cc', but this is not necessarily true when
people run bison on an ASCII host and then use cc on an EBCDIC
host. I don't think these topics are worth our time
addressing (unless we find a gung-ho volunteer for EBCDIC or
PDP-10 ports :-) but they should probably be documented
somewhere.
More importantly, Bison does not currently allow NUL bytes in
tokens, either via escapes (e.g., "x\0y") or via a NUL byte in
the source code. This should get fixed.
* --graph
Show reductions.
* Broken options ?
** %token-table
** Skeleton strategy
Must we keep %token-table?
* src/print_graph.c
Find the best graph parameters.
* BTYacc
See if we can integrate backtracking in Bison. Charles-Henri de
Boysson <de-boy_c@epita.fr> is working on this, and already has some
results. Vadim Maslow, the maintainer of BTYacc was contacted, and we
stay in touch with him. Adjusting the Bison grammar parser will be
needed to support some extra BTYacc features. This is less urgent.
** Keeping the conflicted actions
First, analyze the differences between byacc and btyacc (I'm referring
to the executables). Find where the conflicts are preserved.
** Compare with the GLR tables
See how isomorphic the way BTYacc and the way the GLR adjustments in
Bison are compatible. *As much as possible* one should try to use the
same implementation in the Bison executables. I insist: it should be
very feasible to use the very same conflict tables.
** Adjust the skeletons
Import the skeletons for C and C++.
** Improve the skeletons
Have them support yysymprint, yydestruct and so forth.
* Precedence
** Partial order
It is unfortunate that there is a total order for precedence. It
makes it impossible to have modular precedence information. We should
move to partial orders (sounds like series/parallel orders to me).
** Correlation b/w precedence and associativity
Also, I fail to understand why we have to assign the same
associativity to operators with the same precedence. For instance,
why can't I decide that the precedence of * and / is the same, but the
latter is nonassoc?
If there is really no profound motivation, we should find a new syntax
to allow specifying this.
** RR conflicts
See if we can use precedence between rules to solve RR conflicts. See
what POSIX says.
* $undefined
From Hans:
- If the Bison generated parser experiences an undefined number in the
character range, that character is written out in diagnostic messages, an
addition to the $undefined value.
Suggest: Change the name $undefined to undefined; looks better in outputs.
* Default Action
From Hans:
- For use with my C++ parser, I transported the "switch (yyn)" statement
that Bison writes to the bison.simple skeleton file. This way, I can remove
the current default rule $$ = $1 implementation, which causes a double
assignment to $$ which may not be OK under C++, replacing it with a
"default:" part within the switch statement.
Note that the default rule $$ = $1, when typed, is perfectly OK under C,
but in the C++ implementation I made, this rule is different from
$<type_name>$ = $<type_name>1. I therefore think that one should implement
a Bison option where every typed default rule is explicitly written out
(same typed ruled can of course be grouped together).
Note: Robert Anisko handles this. He knows how to do it.
* Warnings
It would be nice to have warning support. See how Autoconf handles
them, it is fairly well described there. It would be very nice to
implement this in such a way that other programs could use
lib/warnings.[ch].
Don't work on this without first announcing you do, as I already have
thought about it, and know many of the components that can be used to
implement it.
* Pre and post actions.
From: Florian Krohm <florian@edamail.fishkill.ibm.com>
Subject: YYACT_EPILOGUE
To: bug-bison@gnu.org
X-Sent: 1 week, 4 days, 14 hours, 38 minutes, 11 seconds ago
The other day I had the need for explicitly building the parse tree. I
used %locations for that and defined YYLLOC_DEFAULT to call a function
that returns the tree node for the production. Easy. But I also needed
to assign the S-attribute to the tree node. That cannot be done in
YYLLOC_DEFAULT, because it is invoked before the action is executed.
The way I solved this was to define a macro YYACT_EPILOGUE that would
be invoked after the action. For reasons of symmetry I also added
YYACT_PROLOGUE. Although I had no use for that I can envision how it
might come in handy for debugging purposes.
All is needed is to add
#if YYLSP_NEEDED
YYACT_EPILOGUE (yyval, (yyvsp - yylen), yylen, yyloc, (yylsp - yylen));
#else
YYACT_EPILOGUE (yyval, (yyvsp - yylen), yylen);
#endif
at the proper place to bison.simple. Ditto for YYACT_PROLOGUE.
I was wondering what you think about adding YYACT_PROLOGUE/EPILOGUE
to bison. If you're interested, I'll work on a patch.
* Better graphics
Equip the parser with a means to create the (visual) parse tree.
-----
Copyright (C) 2001, 2002, 2003, 2004, 2006 Free Software Foundation,
Inc.
This file is part of Bison, the GNU Compiler Compiler.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@@ -1,70 +0,0 @@
-*- outline -*-
This directory contains data needed by Bison.
* Skeletons
Bison skeletons: the general shapes of the different parser kinds,
that are specialized for specific grammars by the bison program.
Currently, the supported skeletons are:
- yacc.c
It used to be named bison.simple: it corresponds to C Yacc
compatible LALR(1) parsers.
- lalr1.cc
Produces a C++ parser class.
- lalr1.java
Produces a Java parser class.
- glr.c
A Generalized LR C parser based on Bison's LALR(1) tables.
- glr.cc
A Generalized LR C++ parser. Actually a C++ wrapper around glr.c.
These skeletons are the only ones supported by the Bison team.
Because the interface between skeletons and the bison program is not
finished, *we are not bound to it*. In particular, Bison is not
mature enough for us to consider that ``foreign skeletons'' are
supported.
* m4sugar
This directory contains M4sugar, sort of an extended library for M4,
which is used by Bison to instantiate the skeletons.
* xslt
This directory contains XSLT programs that transform Bison's XML output
into various formats.
- bison.xsl
A library of routines used by the other XSLT programs.
- xml2dot.xsl
Conversion into GraphViz's dot format.
- xml2text.xsl
Conversion into text.
- xml2xhtml.xsl
Conversion into XHTML.
-----
Copyright (C) 2002, 2008 Free Software Foundation, Inc.
This file is part of GNU Bison.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

Some files were not shown because too many files have changed in this diff Show More