Compare commits
346 Commits
a886bd9666
...
8710e9b8c8
Author | SHA1 | Date |
---|---|---|
Jonathan G Rennison | 8710e9b8c8 | 4 weeks ago |
Tyler Trahan | 019f93a65f | 4 weeks ago |
translators | ab7e2a1883 | 4 weeks ago |
Rubidium | 1a3cbaec56 | 4 weeks ago |
Rubidium | 849d1fa1b3 | 4 weeks ago |
Rubidium | 457d51fc49 | 4 weeks ago |
Rubidium | a9318cf653 | 4 weeks ago |
Rubidium | 9dc1fdc385 | 4 weeks ago |
Rubidium | 16639939e9 | 4 weeks ago |
Rubidium | ca4bef1504 | 4 weeks ago |
Rubidium | 71fc907584 | 4 weeks ago |
Rubidium | a002803d1c | 4 weeks ago |
Rubidium | 4f3db8eeaf | 4 weeks ago |
Rubidium | 66354ab9eb | 4 weeks ago |
Rubidium | 1250ce8fdc | 4 weeks ago |
translators | 4e9a280ef8 | 4 weeks ago |
Rubidium | b9c894b717 | 4 weeks ago |
Rubidium | 455e202e03 | 4 weeks ago |
Peter Nelson | 4740eeaa43 | 1 month ago |
Koen Bussemaker | d2f98440bb | 1 month ago |
Peter Nelson | 84ebae0bf5 | 1 month ago |
Peter Nelson | cf94bd321d | 1 month ago |
Peter Nelson | 72b2840a97 | 1 month ago |
translators | 99f497cb08 | 1 month ago |
Rubidium | 9fe9e4d398 | 1 month ago |
Peter Nelson | d074ab909c | 1 month ago |
Tyler Trahan | cb26b0e92d | 1 month ago |
Peter Nelson | f629d3c921 | 1 month ago |
Peter Nelson | 115ac2629b | 1 month ago |
translators | 60cf37e0d1 | 1 month ago |
Peter Nelson | 9a7c30a109 | 1 month ago |
Peter Nelson | 9d2efd4c96 | 1 month ago |
Rubidium | 8b6661d486 | 1 month ago |
Rubidium | 0b50834f81 | 1 month ago |
translators | e0048d798f | 1 month ago |
Peter Nelson | 90029beb49 | 1 month ago |
James Addison | c17fa6032b | 1 month ago |
Koen Bussemaker | ef99aa81a3 | 1 month ago |
Peter Nelson | cf96d49ced | 1 month ago |
translators | 65c9df49d9 | 1 month ago |
Fen | 2559bdfa6f | 1 month ago |
Jonathan G Rennison | 9647fe1d05 | 1 month ago |
Peter Nelson | f146680121 | 1 month ago |
Peter Nelson | 7147fe9e7a | 1 month ago |
Peter Nelson | 532ce1a907 | 1 month ago |
Peter Nelson | 1424a184d8 | 1 month ago |
translators | 96d82b4363 | 1 month ago |
translators | 4df44fea38 | 1 month ago |
Peter Nelson | cc6e4768a9 | 1 month ago |
translators | b852a3f408 | 1 month ago |
rubidium42 | fd4cf699e5 | 1 month ago |
Rubidium | 98d37338df | 1 month ago |
Rubidium | 24b6ec80a9 | 1 month ago |
Rubidium | 87dbd4a833 | 1 month ago |
Rubidium | d183d8e587 | 1 month ago |
Rubidium | 37a03b513f | 1 month ago |
Rubidium | 546a996d95 | 1 month ago |
Rubidium | ad50c4f298 | 1 month ago |
Peter Nelson | ef55cc7979 | 1 month ago |
Loïc Guilloux | 99b74c1064 | 1 month ago |
Rubidium | 826deaee57 | 1 month ago |
Rubidium | 97a34bf06e | 1 month ago |
translators | ee9895a970 | 1 month ago |
Peter Nelson | 440a633fcc | 1 month ago |
Peter Nelson | 33aedc43a5 | 1 month ago |
translators | 8308998388 | 1 month ago |
Peter Nelson | bf8de188ec | 1 month ago |
Peter Nelson | 72c55128d2 | 1 month ago |
Peter Nelson | a6d401debf | 1 month ago |
translators | a60a81f34e | 1 month ago |
Rubidium | 0fdabca605 | 1 month ago |
Peter Nelson | f44d8fa2e4 | 1 month ago |
Peter Nelson | 0075a95278 | 1 month ago |
Peter Nelson | 5bc9854be2 | 1 month ago |
Jonathan G Rennison | 9b747a173d | 1 month ago |
Jonathan G Rennison | 11ec156b64 | 1 month ago |
André Cheng | 57f5d27427 | 1 month ago |
André Cheng | ceb0053dd9 | 1 month ago |
André Cheng | 339b0ea0ff | 1 month ago |
André Cheng | fd80a1ec66 | 1 month ago |
André Cheng | a4071b78d7 | 1 month ago |
translators | e8d25d68b9 | 1 month ago |
Peter Nelson | e8249e9075 | 1 month ago |
Peter Nelson | 5159aa81d4 | 1 month ago |
Peter Nelson | 26bb87ebf1 | 1 month ago |
Peter Nelson | 1dc94d0670 | 1 month ago |
Peter Nelson | 6a3f50aa72 | 1 month ago |
Peter Nelson | e20f48799e | 1 month ago |
Peter Nelson | 5e689ce25e | 1 month ago |
translators | 9121770582 | 1 month ago |
Peter Nelson | ac6a945e26 | 1 month ago |
Koen Bussemaker | bef11941c6 | 1 month ago |
translators | 95de90dd4e | 1 month ago |
Peter Nelson | 3814adaba8 | 1 month ago |
translators | c82a2575d7 | 1 month ago |
Rubidium | ded4d63db2 | 1 month ago |
Peter Nelson | d465257dd0 | 1 month ago |
Peter Nelson | 3b01d31280 | 1 month ago |
translators | c073165e34 | 1 month ago |
Rubidium | aa895535e6 | 1 month ago |
Peter Nelson | 959ced71bb | 1 month ago |
Peter Nelson | b4e00fa738 | 2 months ago |
Loïc Guilloux | c5ef47ee09 | 2 months ago |
Rubidium | 1dfd0c19f4 | 2 months ago |
Rubidium | c377c4740d | 2 months ago |
Peter Nelson | a1a01e21cf | 2 months ago |
Rubidium | fc7f184dbd | 2 months ago |
Rubidium | 1691b41b54 | 2 months ago |
Rubidium | 434c49a1f8 | 2 months ago |
Rubidium | 8fe5fdf122 | 2 months ago |
Rubidium | 8986fb0385 | 2 months ago |
Peter Nelson | 2114888485 | 2 months ago |
Rubidium | e441033d68 | 2 months ago |
Peter Nelson | 40fa45a76a | 2 months ago |
Peter Nelson | ed2db80990 | 2 months ago |
Peter Nelson | 57d7359b1a | 2 months ago |
Peter Nelson | 699c7e4c9d | 2 months ago |
Peter Nelson | 1c31e4b68c | 2 months ago |
Peter Nelson | e028c15555 | 2 months ago |
translators | 08140fdca3 | 2 months ago |
Peter Nelson | 6cbb8d02cf | 2 months ago |
Peter Nelson | 5df5e3f45c | 2 months ago |
Peter Nelson | 2a833a8968 | 2 months ago |
Peter Nelson | 7e049aa2b1 | 2 months ago |
Peter Nelson | 16eb17418b | 2 months ago |
Peter Nelson | 61c6ebaacc | 2 months ago |
Peter Nelson | d43ff8dc49 | 2 months ago |
Peter Nelson | f267b37a33 | 2 months ago |
Peter Nelson | a28ab8cac2 | 2 months ago |
Peter Nelson | 6ee31a2a22 | 2 months ago |
Peter Nelson | 3b80a8255f | 2 months ago |
translators | 7848e80f71 | 2 months ago |
dP | 0d1fc47edb | 2 months ago |
Peter Nelson | 774f811217 | 2 months ago |
Peter Nelson | 3b75d8bbf8 | 2 months ago |
Peter Nelson | 21d11ee361 | 2 months ago |
Peter Nelson | db56499c01 | 2 months ago |
Peter Nelson | fe7bd3a266 | 2 months ago |
Peter Nelson | d57bf84196 | 2 months ago |
Peter Nelson | 45886e50b2 | 2 months ago |
Patric Stout | 04a3bf76e8 | 2 months ago |
Patric Stout | 08d05bf4c0 | 2 months ago |
Peter Nelson | 4170c9923a | 2 months ago |
Tyler Trahan | 78b83190cc | 2 months ago |
Patric Stout | 715f8c0218 | 2 months ago |
translators | c355e98c58 | 2 months ago |
Peter Nelson | 63ce81570c | 2 months ago |
Peter Nelson | 42523379d9 | 2 months ago |
Peter Nelson | d7c547d0db | 2 months ago |
Peter Nelson | 5a523cf212 | 2 months ago |
Peter Nelson | 6458980413 | 2 months ago |
Jonathan G Rennison | 83d99ec11d | 2 months ago |
Patric Stout | f7bd080015 | 2 months ago |
Patric Stout | 07b162ffc4 | 2 months ago |
Patric Stout | a0636d8200 | 2 months ago |
Patric Stout | a09749f6a6 | 2 months ago |
Patric Stout | 1005c86c62 | 2 months ago |
Tyler Trahan | a02da5476e | 2 months ago |
Tyler Trahan | 5878d09ef2 | 2 months ago |
Tyler Trahan | 824687d1f0 | 2 months ago |
Jonathan G Rennison | 0b9029b69c | 2 months ago |
Peter Nelson | ef8eb66a2b | 2 months ago |
Paco Esteban | b477a8458c | 2 months ago |
translators | 018326321c | 2 months ago |
Koen Bussemaker | 257d312a58 | 2 months ago |
Rubidium | b2218e75d4 | 2 months ago |
Peter Nelson | 48eb9b8bc9 | 2 months ago |
translators | 8e2ccddd77 | 2 months ago |
Peter Nelson | 3ad143c43a | 2 months ago |
Koen Bussemaker | 672aa014d8 | 2 months ago |
ladysadie | 727392e0b3 | 2 months ago |
Peter Nelson | a1b03ee69e | 2 months ago |
dP | f5a50a874f | 2 months ago |
translators | cd108fd9e4 | 2 months ago |
Peter Nelson | 839f486074 | 2 months ago |
Peter Nelson | 4eaeccdaeb | 2 months ago |
translators | 29e932e087 | 2 months ago |
translators | 090c3b3abf | 2 months ago |
Peter Nelson | e83e2df023 | 2 months ago |
Peter Nelson | 12125bad82 | 2 months ago |
Peter Nelson | c1520cf682 | 2 months ago |
Peter Nelson | ca73f03334 | 2 months ago |
Peter Nelson | 44b8210037 | 2 months ago |
Peter Nelson | 003906becb | 2 months ago |
translators | bb9b8b90c7 | 2 months ago |
Peter Nelson | 9915c1f032 | 2 months ago |
Rubidium | eda10abc8c | 2 months ago |
Peter Nelson | 3316b27496 | 2 months ago |
Rubidium | afd7878de0 | 2 months ago |
Rubidium | 5592b4409b | 2 months ago |
Rubidium | e8a56db21d | 2 months ago |
Rubidium | 4f2412a272 | 2 months ago |
Rubidium | 2587a21400 | 2 months ago |
Rubidium | ff27b9e76a | 2 months ago |
translators | 6cade18053 | 2 months ago |
rubidium42 | 442daf58da | 2 months ago |
Peter Nelson | 6bc4a62c27 | 2 months ago |
Peter Nelson | 332cbca36e | 2 months ago |
Peter Nelson | a42aa1a086 | 2 months ago |
Peter Nelson | 144bcbbaf1 | 2 months ago |
Rubidium | 21b640b5ff | 2 months ago |
Patric Stout | 1b4bb1d38a | 2 months ago |
translators | f0f97c698b | 2 months ago |
Peter Nelson | 1773c5b810 | 2 months ago |
Rubidium | df8eeb1b10 | 2 months ago |
Peter Nelson | 77f27e0804 | 2 months ago |
Peter Nelson | 052f421327 | 2 months ago |
Peter Nelson | 34758d0921 | 2 months ago |
Peter Nelson | 90ca3515da | 2 months ago |
Peter Nelson | 2976a46d06 | 2 months ago |
Rubidium | 883d3e7a9f | 2 months ago |
Peter Nelson | 54be756aae | 2 months ago |
Peter Nelson | dc7c2bb30d | 2 months ago |
Peter Nelson | de4e00c93f | 2 months ago |
translators | b5ad28022d | 2 months ago |
Peter Nelson | 1b127628cb | 2 months ago |
Peter Nelson | 7e28605830 | 2 months ago |
Peter Nelson | 4daf95b878 | 2 months ago |
Peter Nelson | cdfffb551c | 2 months ago |
Peter Nelson | 74e09abf76 | 2 months ago |
Rubidium | 4e6d4fcf32 | 2 months ago |
translators | 095bdf32fe | 2 months ago |
Rubidium | 62f5c595f3 | 2 months ago |
rubidium42 | 4718971ccc | 2 months ago |
Peter Nelson | 995fca58a2 | 2 months ago |
Rubidium | d7fa614a9d | 2 months ago |
Rubidium | 1fcf1a136d | 2 months ago |
translators | 0f6bf90731 | 2 months ago |
Peter Nelson | eb094a953c | 2 months ago |
Peter Nelson | 34ba969c74 | 2 months ago |
Peter Nelson | fbdf26800b | 2 months ago |
Peter Nelson | a4c2f0778a | 2 months ago |
Peter Nelson | b905209421 | 2 months ago |
Peter Nelson | 830c9e2de8 | 2 months ago |
Rubidium | 97bea563d7 | 2 months ago |
Rubidium | c544a2be0a | 2 months ago |
translators | eaafc57de6 | 2 months ago |
Peter Nelson | 8e881471c1 | 2 months ago |
Peter Nelson | 6771dbe62b | 2 months ago |
Peter Nelson | a866166673 | 2 months ago |
Peter Nelson | 2cc700d606 | 2 months ago |
Peter Nelson | 83da886093 | 2 months ago |
Peter Nelson | e8c78df39e | 2 months ago |
Peter Nelson | d11622b9a0 | 2 months ago |
translators | df3e5ade11 | 2 months ago |
Peter Nelson | 7572cfd103 | 2 months ago |
Peter Nelson | 9854553e10 | 2 months ago |
Peter Nelson | 3c94e81665 | 2 months ago |
Peter Nelson | 7c322ebcf1 | 2 months ago |
Peter Nelson | 197fb00d31 | 2 months ago |
Peter Nelson | 338def1b06 | 2 months ago |
Peter Nelson | f6a88e40a4 | 2 months ago |
translators | 08cf106fc6 | 2 months ago |
Loïc Guilloux | 243c6bead3 | 2 months ago |
translators | 931aa39018 | 2 months ago |
Peter Nelson | 9750826590 | 2 months ago |
translators | 72b5c6a591 | 2 months ago |
Peter Nelson | 2047c27445 | 2 months ago |
Peter Nelson | 56cac21086 | 2 months ago |
Loïc Guilloux | 11aa3694fa | 2 months ago |
Peter Nelson | 3de8853e29 | 2 months ago |
Peter Nelson | 00e0021e3a | 2 months ago |
Peter Nelson | 295508fc53 | 2 months ago |
Peter Nelson | f79ec7955a | 2 months ago |
Peter Nelson | bd2a92331b | 2 months ago |
Peter Nelson | f6b38e8e06 | 2 months ago |
Peter Nelson | e4fc8ef595 | 2 months ago |
merni-ns | 6f36f3d714 | 2 months ago |
merni-ns | 92a171c3e0 | 2 months ago |
Peter Nelson | d68e5159e1 | 2 months ago |
translators | 3d2a8fb60c | 2 months ago |
Peter Nelson | d683ec0183 | 2 months ago |
Rubidium | d5e28a904d | 2 months ago |
translators | 9954187680 | 2 months ago |
Patric Stout | 77f02faf15 | 2 months ago |
translators | 340c2802da | 2 months ago |
Patric Stout | e866ca8adc | 2 months ago |
Patric Stout | c0308acb03 | 2 months ago |
Peter Nelson | 8d312b305b | 2 months ago |
translators | e21c12afeb | 2 months ago |
Peter Nelson | e16b982b6a | 2 months ago |
Peter Nelson | 3e83dcedfd | 2 months ago |
Peter Nelson | 8746be8bf2 | 2 months ago |
frosch | 907cb4fc53 | 2 months ago |
Michael Lutz | 8fb7d74dfe | 2 months ago |
Michael Lutz | 69acc132ca | 2 months ago |
Loïc Guilloux | 71087bb6d3 | 2 months ago |
translators | ca53e134be | 2 months ago |
Jonathan G Rennison | 433484cda3 | 2 months ago |
translators | b8b01818ca | 2 months ago |
translators | 575336ef43 | 2 months ago |
Rubidium | 8e12bd35ae | 2 months ago |
Peter Nelson | 4751179dc5 | 2 months ago |
Rubidium | 9aa6669266 | 2 months ago |
Rubidium | 84bbe235e4 | 2 months ago |
Tyler Trahan | f71ada4f30 | 2 months ago |
SamuXarick | f845b4bbc3 | 2 months ago |
translators | 40a75e0b8d | 2 months ago |
Peter Nelson | 97c1738541 | 2 months ago |
Peter Nelson | eebfb83aa2 | 2 months ago |
Tyler Trahan | 8928f4979a | 2 months ago |
Rubidium | caa7c44052 | 2 months ago |
Rubidium | d09b5aaeba | 2 months ago |
Rubidium | c01bf06ee1 | 2 months ago |
translators | 018944dc20 | 2 months ago |
Peter Nelson | 668186ca5b | 2 months ago |
Peter Nelson | ff35288ddf | 2 months ago |
glx22 | 02c00f3e3e | 2 months ago |
glx22 | 704e871a0e | 2 months ago |
frosch | 603154899a | 2 months ago |
Rubidium | 0f25eaa271 | 2 months ago |
Jonathan G Rennison | 515303b8be | 2 months ago |
Tyler Trahan | 2732b3d6c6 | 2 months ago |
Peter Nelson | ea74ca0a76 | 2 months ago |
Rubidium | f599108c16 | 2 months ago |
translators | 4321cca5fb | 2 months ago |
Peter Nelson | df2ee7b06c | 2 months ago |
Rubidium | e904122441 | 2 months ago |
merni-ns | 7457f8d0ff | 2 months ago |
raddari | 5751da7809 | 2 months ago |
translators | e141734e54 | 2 months ago |
Jonathan G Rennison | 2189607c34 | 2 months ago |
Jonathan G Rennison | e42aec5a89 | 2 months ago |
translators | 0eaeeaabb6 | 3 months ago |
Tyler Trahan | 704d3b8a9b | 3 months ago |
translators | 00a09af1fd | 3 months ago |
Owen Rudge | d4a6ee9554 | 3 months ago |
translators | 3a3d8f3b53 | 3 months ago |
Peter Nelson | 737e3feaf0 | 3 months ago |
Rubidium | 7580eac2d5 | 3 months ago |
Peter Nelson | 2485de9462 | 3 months ago |
Peter Nelson | 107c208d87 | 3 months ago |
translators | ec3c8d3462 | 3 months ago |
Rubidium | 4af089b9be | 3 months ago |
Rubidium | b7dfa3eb90 | 3 months ago |
Rubidium | 1cf8799810 | 3 months ago |
Rubidium | d26629c15b | 3 months ago |
Rubidium | 5706801ea7 | 3 months ago |
Rubidium | dd532cbc77 | 3 months ago |
Rubidium | fb9d4afa5c | 3 months ago |
Peter Nelson | 88cf99017a | 3 months ago |
Peter Nelson | 322ca6ef54 | 3 months ago |
Peter Nelson | 3fc7b3b9a0 | 3 months ago |
Patric Stout | f08da1d373 | 3 months ago |
Peter Nelson | ab94c8b511 | 3 months ago |
translators | 6c5a8f55df | 3 months ago |
@ -0,0 +1,279 @@
|
||||
==============================================================================
|
||||
The LLVM Project is under the Apache License v2.0 with LLVM Exceptions:
|
||||
==============================================================================
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
|
||||
---- LLVM Exceptions to the Apache 2.0 License ----
|
||||
|
||||
As an exception, if, as a result of your compiling your source code, portions
|
||||
of this Software are embedded into an Object form of such source code, you
|
||||
may redistribute such embedded portions in such Object form without complying
|
||||
with the conditions of Sections 4(a), 4(b) and 4(d) of the License.
|
||||
|
||||
In addition, if you combine or link compiled forms of this Software with
|
||||
software that is licensed under the GPLv2 ("Combined Software") and if a
|
||||
court of competent jurisdiction determines that the patent provision (Section
|
||||
3), the indemnity provision (Section 9) or other Section of the License
|
||||
conflicts with the conditions of the GPLv2, you may retroactively and
|
||||
prospectively choose to deem waived or otherwise exclude such Section(s) of
|
||||
the License, but only in their entirety and only with respect to the Combined
|
||||
Software.
|
||||
|
||||
==============================================================================
|
||||
Software from third parties included in the LLVM Project:
|
||||
==============================================================================
|
||||
The LLVM Project contains third party software which is under different license
|
||||
terms. All such code will be identified clearly using at least one of two
|
||||
mechanisms:
|
||||
1) It will be in a separate directory tree with its own `LICENSE.txt` or
|
||||
`LICENSE` file at the top containing the specific license and restrictions
|
||||
which apply to that software, or
|
||||
2) It will contain specific license and restriction terms at the top of every
|
||||
file.
|
||||
|
||||
==============================================================================
|
||||
Legacy LLVM License (https://llvm.org/docs/DeveloperPolicy.html#legacy):
|
||||
==============================================================================
|
||||
University of Illinois/NCSA
|
||||
Open Source License
|
||||
|
||||
Copyright (c) 2003-2019 University of Illinois at Urbana-Champaign.
|
||||
All rights reserved.
|
||||
|
||||
Developed by:
|
||||
|
||||
LLVM Team
|
||||
|
||||
University of Illinois at Urbana-Champaign
|
||||
|
||||
http://llvm.org
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal with
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
of the Software, and to permit persons to whom the Software is furnished to do
|
||||
so, subject to the following conditions:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimers.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimers in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
* Neither the names of the LLVM Team, University of Illinois at
|
||||
Urbana-Champaign, nor the names of its contributors may be used to
|
||||
endorse or promote products derived from this Software without specific
|
||||
prior written permission.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
|
||||
SOFTWARE.
|
||||
|
@ -1,4 +1,3 @@
|
||||
FROM emscripten/emsdk:3.1.42
|
||||
FROM emscripten/emsdk:3.1.57
|
||||
|
||||
COPY emsdk-liblzma.patch /
|
||||
RUN cd /emsdk/upstream/emscripten && patch -p1 < /emsdk-liblzma.patch
|
||||
COPY ports/liblzma.py /emsdk/upstream/emscripten/tools/ports/contrib/liblzma.py
|
||||
|
@ -1,198 +0,0 @@
|
||||
From 84d0e9112d5c87a714abd21ec8547921f46f37b5 Mon Sep 17 00:00:00 2001
|
||||
From: milek7 <me@milek7.pl>
|
||||
Date: Tue, 8 Dec 2020 01:03:31 +0100
|
||||
Subject: [PATCH] Add liblzma port
|
||||
|
||||
---
|
||||
src/settings.js | 4 ++
|
||||
tools/ports/liblzma.py | 151 +++++++++++++++++++++++++++++++++++++++++
|
||||
tools/settings.py | 1 +
|
||||
3 files changed, 156 insertions(+)
|
||||
create mode 100644 tools/ports/liblzma.py
|
||||
|
||||
diff --git a/src/settings.js b/src/settings.js
|
||||
index f93140d..7b6bec9 100644
|
||||
--- a/src/settings.js
|
||||
+++ b/src/settings.js
|
||||
@@ -1451,6 +1451,10 @@ var USE_GIFLIB = false;
|
||||
// [compile+link]
|
||||
var USE_LIBJPEG = false;
|
||||
|
||||
+// 1 = use liblzma from emscripten-ports
|
||||
+// [compile+link]
|
||||
+var USE_LIBLZMA = false;
|
||||
+
|
||||
// 1 = use libpng from emscripten-ports
|
||||
// [compile+link]
|
||||
var USE_LIBPNG = false;
|
||||
diff --git a/tools/ports/liblzma.py b/tools/ports/liblzma.py
|
||||
new file mode 100644
|
||||
index 0000000..6872a8b
|
||||
--- /dev/null
|
||||
+++ b/tools/ports/liblzma.py
|
||||
@@ -0,0 +1,151 @@
|
||||
+# Copyright 2020 The Emscripten Authors. All rights reserved.
|
||||
+# Emscripten is available under two separate licenses, the MIT license and the
|
||||
+# University of Illinois/NCSA Open Source License. Both these licenses can be
|
||||
+# found in the LICENSE file.
|
||||
+
|
||||
+import os
|
||||
+import shutil
|
||||
+import logging
|
||||
+from pathlib import Path
|
||||
+
|
||||
+VERSION = '5.4.2'
|
||||
+HASH = '149f980338bea3d66de1ff5994b2b236ae1773135eda68b62b009df0c9dcdf5467f8cb2c06da95a71b6556d60bd3d21f475feced34d5dfdb80ee95416a2f9737'
|
||||
+
|
||||
+
|
||||
+def needed(settings):
|
||||
+ return settings.USE_LIBLZMA
|
||||
+
|
||||
+
|
||||
+def get(ports, settings, shared):
|
||||
+ ports.fetch_project('liblzma', f'https://tukaani.org/xz/xz-{VERSION}.tar.gz', sha512hash=HASH)
|
||||
+
|
||||
+ def create(final):
|
||||
+ logging.info('building port: liblzma')
|
||||
+
|
||||
+ ports.clear_project_build('liblzma')
|
||||
+
|
||||
+ source_path = os.path.join(ports.get_dir(), 'liblzma', f'xz-{VERSION}', 'src', 'liblzma')
|
||||
+ ports.write_file(os.path.join(source_path, 'config.h'), config_h)
|
||||
+ ports.install_headers(os.path.join(source_path, 'api'), pattern='lzma.h')
|
||||
+ ports.install_headers(os.path.join(source_path, 'api', 'lzma'), pattern='*.h', target='lzma')
|
||||
+
|
||||
+ build_flags = ['-DHAVE_CONFIG_H', '-DTUKLIB_SYMBOL_PREFIX=lzma_', '-fvisibility=hidden']
|
||||
+ exclude_files = ['crc32_small.c', 'crc64_small.c', 'crc32_tablegen.c', 'crc64_tablegen.c', 'price_tablegen.c', 'fastpos_tablegen.c',
|
||||
+ 'tuklib_exit.c', 'tuklib_mbstr_fw.c', 'tuklib_mbstr_width.c', 'tuklib_open_stdxxx.c', 'tuklib_progname.c']
|
||||
+ include_dirs_rel = ['../common', 'api', 'check', 'common', 'delta', 'lz', 'lzma', 'rangecoder', 'simple']
|
||||
+
|
||||
+ include_dirs = [os.path.join(source_path, p) for p in include_dirs_rel]
|
||||
+ ports.build_port(source_path, final, 'liblzma', flags=build_flags, exclude_files=exclude_files, includes=include_dirs)
|
||||
+
|
||||
+ return [shared.cache.get_lib('liblzma.a', create, what='port')]
|
||||
+
|
||||
+
|
||||
+def clear(ports, settings, shared):
|
||||
+ shared.cache.erase_lib('liblzma.a')
|
||||
+
|
||||
+
|
||||
+def process_args(ports):
|
||||
+ return []
|
||||
+
|
||||
+
|
||||
+def show():
|
||||
+ return 'liblzma (USE_LIBLZMA=1; public domain)'
|
||||
+
|
||||
+
|
||||
+config_h = '''
|
||||
+#define ASSUME_RAM 128
|
||||
+#define ENABLE_NLS 1
|
||||
+#define HAVE_CHECK_CRC32 1
|
||||
+#define HAVE_CHECK_CRC64 1
|
||||
+#define HAVE_CHECK_SHA256 1
|
||||
+#define HAVE_CLOCK_GETTIME 1
|
||||
+#define HAVE_DCGETTEXT 1
|
||||
+#define HAVE_DECL_CLOCK_MONOTONIC 1
|
||||
+#define HAVE_DECL_PROGRAM_INVOCATION_NAME 1
|
||||
+#define HAVE_DECODERS 1
|
||||
+#define HAVE_DECODER_ARM 1
|
||||
+#define HAVE_DECODER_ARMTHUMB 1
|
||||
+#define HAVE_DECODER_DELTA 1
|
||||
+#define HAVE_DECODER_IA64 1
|
||||
+#define HAVE_DECODER_LZMA1 1
|
||||
+#define HAVE_DECODER_LZMA2 1
|
||||
+#define HAVE_DECODER_POWERPC 1
|
||||
+#define HAVE_DECODER_SPARC 1
|
||||
+#define HAVE_DECODER_X86 1
|
||||
+#define HAVE_DLFCN_H 1
|
||||
+#define HAVE_ENCODERS 1
|
||||
+#define HAVE_ENCODER_ARM 1
|
||||
+#define HAVE_ENCODER_ARMTHUMB 1
|
||||
+#define HAVE_ENCODER_DELTA 1
|
||||
+#define HAVE_ENCODER_IA64 1
|
||||
+#define HAVE_ENCODER_LZMA1 1
|
||||
+#define HAVE_ENCODER_LZMA2 1
|
||||
+#define HAVE_ENCODER_POWERPC 1
|
||||
+#define HAVE_ENCODER_SPARC 1
|
||||
+#define HAVE_ENCODER_X86 1
|
||||
+#define HAVE_FCNTL_H 1
|
||||
+#define HAVE_FUTIMENS 1
|
||||
+#define HAVE_GETOPT_H 1
|
||||
+#define HAVE_GETOPT_LONG 1
|
||||
+#define HAVE_GETTEXT 1
|
||||
+#define HAVE_IMMINTRIN_H 1
|
||||
+#define HAVE_INTTYPES_H 1
|
||||
+#define HAVE_LIMITS_H 1
|
||||
+#define HAVE_MBRTOWC 1
|
||||
+#define HAVE_MEMORY_H 1
|
||||
+#define HAVE_MF_BT2 1
|
||||
+#define HAVE_MF_BT3 1
|
||||
+#define HAVE_MF_BT4 1
|
||||
+#define HAVE_MF_HC3 1
|
||||
+#define HAVE_MF_HC4 1
|
||||
+#define HAVE_OPTRESET 1
|
||||
+#define HAVE_POSIX_FADVISE 1
|
||||
+#define HAVE_PTHREAD_CONDATTR_SETCLOCK 1
|
||||
+#define HAVE_PTHREAD_PRIO_INHERIT 1
|
||||
+#define HAVE_STDBOOL_H 1
|
||||
+#define HAVE_STDINT_H 1
|
||||
+#define HAVE_STDLIB_H 1
|
||||
+#define HAVE_STRINGS_H 1
|
||||
+#define HAVE_STRING_H 1
|
||||
+#define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1
|
||||
+#define HAVE_SYS_PARAM_H 1
|
||||
+#define HAVE_SYS_STAT_H 1
|
||||
+#define HAVE_SYS_TIME_H 1
|
||||
+#define HAVE_SYS_TYPES_H 1
|
||||
+#define HAVE_UINTPTR_T 1
|
||||
+#define HAVE_UNISTD_H 1
|
||||
+#define HAVE_VISIBILITY 1
|
||||
+#define HAVE_WCWIDTH 1
|
||||
+#define HAVE__BOOL 1
|
||||
+#define HAVE___BUILTIN_ASSUME_ALIGNED 1
|
||||
+#define HAVE___BUILTIN_BSWAPXX 1
|
||||
+#define MYTHREAD_POSIX 1
|
||||
+#define NDEBUG 1
|
||||
+#define PACKAGE "xz"
|
||||
+#define PACKAGE_BUGREPORT "lasse.collin@tukaani.org"
|
||||
+#define PACKAGE_NAME "XZ Utils"
|
||||
+#define PACKAGE_STRING "XZ Utils 5.4.0"
|
||||
+#define PACKAGE_TARNAME "xz"
|
||||
+#define PACKAGE_VERSION "5.4.0"
|
||||
+#define SIZEOF_SIZE_T 4
|
||||
+#define STDC_HEADERS 1
|
||||
+#define TUKLIB_CPUCORES_SYSCONF 1
|
||||
+#define TUKLIB_FAST_UNALIGNED_ACCESS 1
|
||||
+#define TUKLIB_PHYSMEM_SYSCONF 1
|
||||
+#ifndef _ALL_SOURCE
|
||||
+# define _ALL_SOURCE 1
|
||||
+#endif
|
||||
+#ifndef _GNU_SOURCE
|
||||
+# define _GNU_SOURCE 1
|
||||
+#endif
|
||||
+#ifndef _POSIX_PTHREAD_SEMANTICS
|
||||
+# define _POSIX_PTHREAD_SEMANTICS 1
|
||||
+#endif
|
||||
+#ifndef _TANDEM_SOURCE
|
||||
+# define _TANDEM_SOURCE 1
|
||||
+#endif
|
||||
+#ifndef __EXTENSIONS__
|
||||
+# define __EXTENSIONS__ 1
|
||||
+#endif
|
||||
+#define VERSION "5.4.0"
|
||||
+'''
|
||||
diff --git a/tools/settings.py b/tools/settings.py
|
||||
index 10d6ca0..827e4a9 100644
|
||||
--- a/tools/settings.py
|
||||
+++ b/tools/settings.py
|
||||
@@ -40,6 +40,7 @@ PORTS_SETTINGS = {
|
||||
'USE_SDL_NET',
|
||||
'USE_SDL_GFX',
|
||||
'USE_LIBJPEG',
|
||||
+ 'USE_LIBLZMA',
|
||||
'USE_OGG',
|
||||
'USE_REGAL',
|
||||
'USE_BOOST_HEADERS',
|
||||
--
|
||||
2.34.1
|
@ -0,0 +1,139 @@
|
||||
import os
|
||||
import logging
|
||||
|
||||
VERSION = '5.4.6'
|
||||
HASH = '495cc890d25c075c927c907b77e60d86dd8a4c377cea5b1172c8e916984149a7bb5fb32db25091f7219346b83155b47e4bc0404cc8529d992014cd7ed0c278b7'
|
||||
|
||||
URL = 'https://github.com/tukaani-project/xz'
|
||||
DESCRIPTION = 'liblzma provides a general-purpose data-compression library.'
|
||||
LICENSE = 'LGPL-2.1'
|
||||
|
||||
def get(ports, settings, shared):
|
||||
ports.fetch_project('contrib.liblzma', f'https://github.com/tukaani-project/xz/releases/download/v{VERSION}/xz-{VERSION}.tar.xz', sha512hash=HASH)
|
||||
|
||||
def create(final):
|
||||
logging.info('building port: contrib.liblzma')
|
||||
|
||||
ports.clear_project_build('contrib.liblzma')
|
||||
|
||||
source_path = os.path.join(ports.get_dir(), 'contrib.liblzma', f'xz-{VERSION}', 'src', 'liblzma')
|
||||
ports.write_file(os.path.join(source_path, 'config.h'), config_h)
|
||||
ports.install_headers(os.path.join(source_path, 'api'), pattern='lzma.h')
|
||||
ports.install_headers(os.path.join(source_path, 'api', 'lzma'), pattern='*.h', target='lzma')
|
||||
|
||||
build_flags = ['-DHAVE_CONFIG_H', '-DTUKLIB_SYMBOL_PREFIX=lzma_', '-fvisibility=hidden']
|
||||
exclude_files = ['crc32_small.c', 'crc64_small.c', 'crc32_tablegen.c', 'crc64_tablegen.c', 'price_tablegen.c', 'fastpos_tablegen.c',
|
||||
'tuklib_exit.c', 'tuklib_mbstr_fw.c', 'tuklib_mbstr_width.c', 'tuklib_open_stdxxx.c', 'tuklib_progname.c']
|
||||
include_dirs_rel = ['../common', 'api', 'check', 'common', 'delta', 'lz', 'lzma', 'rangecoder', 'simple']
|
||||
|
||||
include_dirs = [os.path.join(source_path, p) for p in include_dirs_rel]
|
||||
ports.build_port(source_path, final, 'contrib.liblzma', flags=build_flags, exclude_files=exclude_files, includes=include_dirs)
|
||||
|
||||
return [shared.cache.get_lib('liblzma.a', create, what='port')]
|
||||
|
||||
|
||||
def clear(ports, settings, shared):
|
||||
shared.cache.erase_lib('liblzma.a')
|
||||
|
||||
|
||||
def process_args(ports):
|
||||
return []
|
||||
|
||||
|
||||
config_h = '''
|
||||
#define ASSUME_RAM 128
|
||||
#define ENABLE_NLS 1
|
||||
#define HAVE_CHECK_CRC32 1
|
||||
#define HAVE_CHECK_CRC64 1
|
||||
#define HAVE_CHECK_SHA256 1
|
||||
#define HAVE_CLOCK_GETTIME 1
|
||||
#define HAVE_DCGETTEXT 1
|
||||
#define HAVE_DECL_CLOCK_MONOTONIC 1
|
||||
#define HAVE_DECL_PROGRAM_INVOCATION_NAME 1
|
||||
#define HAVE_DECODERS 1
|
||||
#define HAVE_DECODER_ARM 1
|
||||
#define HAVE_DECODER_ARMTHUMB 1
|
||||
#define HAVE_DECODER_DELTA 1
|
||||
#define HAVE_DECODER_IA64 1
|
||||
#define HAVE_DECODER_LZMA1 1
|
||||
#define HAVE_DECODER_LZMA2 1
|
||||
#define HAVE_DECODER_POWERPC 1
|
||||
#define HAVE_DECODER_SPARC 1
|
||||
#define HAVE_DECODER_X86 1
|
||||
#define HAVE_DLFCN_H 1
|
||||
#define HAVE_ENCODERS 1
|
||||
#define HAVE_ENCODER_ARM 1
|
||||
#define HAVE_ENCODER_ARMTHUMB 1
|
||||
#define HAVE_ENCODER_DELTA 1
|
||||
#define HAVE_ENCODER_IA64 1
|
||||
#define HAVE_ENCODER_LZMA1 1
|
||||
#define HAVE_ENCODER_LZMA2 1
|
||||
#define HAVE_ENCODER_POWERPC 1
|
||||
#define HAVE_ENCODER_SPARC 1
|
||||
#define HAVE_ENCODER_X86 1
|
||||
#define HAVE_FCNTL_H 1
|
||||
#define HAVE_FUTIMENS 1
|
||||
#define HAVE_GETOPT_H 1
|
||||
#define HAVE_GETOPT_LONG 1
|
||||
#define HAVE_GETTEXT 1
|
||||
#define HAVE_IMMINTRIN_H 1
|
||||
#define HAVE_INTTYPES_H 1
|
||||
#define HAVE_LIMITS_H 1
|
||||
#define HAVE_MBRTOWC 1
|
||||
#define HAVE_MEMORY_H 1
|
||||
#define HAVE_MF_BT2 1
|
||||
#define HAVE_MF_BT3 1
|
||||
#define HAVE_MF_BT4 1
|
||||
#define HAVE_MF_HC3 1
|
||||
#define HAVE_MF_HC4 1
|
||||
#define HAVE_OPTRESET 1
|
||||
#define HAVE_POSIX_FADVISE 1
|
||||
#define HAVE_PTHREAD_CONDATTR_SETCLOCK 1
|
||||
#define HAVE_PTHREAD_PRIO_INHERIT 1
|
||||
#define HAVE_STDBOOL_H 1
|
||||
#define HAVE_STDINT_H 1
|
||||
#define HAVE_STDLIB_H 1
|
||||
#define HAVE_STRINGS_H 1
|
||||
#define HAVE_STRING_H 1
|
||||
#define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1
|
||||
#define HAVE_SYS_PARAM_H 1
|
||||
#define HAVE_SYS_STAT_H 1
|
||||
#define HAVE_SYS_TIME_H 1
|
||||
#define HAVE_SYS_TYPES_H 1
|
||||
#define HAVE_UINTPTR_T 1
|
||||
#define HAVE_UNISTD_H 1
|
||||
#define HAVE_VISIBILITY 1
|
||||
#define HAVE_WCWIDTH 1
|
||||
#define HAVE__BOOL 1
|
||||
#define HAVE___BUILTIN_ASSUME_ALIGNED 1
|
||||
#define HAVE___BUILTIN_BSWAPXX 1
|
||||
#define MYTHREAD_POSIX 1
|
||||
#define NDEBUG 1
|
||||
#define PACKAGE "xz"
|
||||
#define PACKAGE_BUGREPORT "lasse.collin@tukaani.org"
|
||||
#define PACKAGE_NAME "XZ Utils"
|
||||
#define PACKAGE_STRING "XZ Utils 5.4.0"
|
||||
#define PACKAGE_TARNAME "xz"
|
||||
#define PACKAGE_VERSION "5.4.0"
|
||||
#define SIZEOF_SIZE_T 4
|
||||
#define STDC_HEADERS 1
|
||||
#define TUKLIB_CPUCORES_SYSCONF 1
|
||||
#define TUKLIB_FAST_UNALIGNED_ACCESS 1
|
||||
#define TUKLIB_PHYSMEM_SYSCONF 1
|
||||
#ifndef _ALL_SOURCE
|
||||
# define _ALL_SOURCE 1
|
||||
#endif
|
||||
#ifndef _GNU_SOURCE
|
||||
# define _GNU_SOURCE 1
|
||||
#endif
|
||||
#ifndef _POSIX_PTHREAD_SEMANTICS
|
||||
# define _POSIX_PTHREAD_SEMANTICS 1
|
||||
#endif
|
||||
#ifndef _TANDEM_SOURCE
|
||||
# define _TANDEM_SOURCE 1
|
||||
#endif
|
||||
#ifndef __EXTENSIONS__
|
||||
# define __EXTENSIONS__ 1
|
||||
#endif
|
||||
#define VERSION "5.4.0"
|
||||
'''
|
@ -1,18 +1,2 @@
|
||||
@echo off
|
||||
REM Signing script
|
||||
REM Arguments: sign.bat exe_to_sign certificate_subject_name
|
||||
|
||||
REM This is a loose wrapper around the Microsoft signtool application (included in the Windows SDK).
|
||||
REM See https://docs.microsoft.com/en-us/dotnet/framework/tools/signtool-exe for more details.
|
||||
|
||||
REM Path to signtool.exe
|
||||
IF NOT DEFINED SIGNTOOL_PATH (SET SIGNTOOL_PATH=signtool)
|
||||
|
||||
REM URL of the timestamp server
|
||||
IF NOT DEFINED SIGNTOOL_TIMESTAMP_URL (SET SIGNTOOL_TIMESTAMP_URL=http://timestamp.digicert.com)
|
||||
|
||||
REM Sign with SHA-1 for Windows 7 and below
|
||||
"%SIGNTOOL_PATH%" sign -v -n %2 -t %SIGNTOOL_TIMESTAMP_URL% -fd sha1 %1
|
||||
|
||||
REM Sign with SHA-256 for Windows 8 and above
|
||||
"%SIGNTOOL_PATH%" sign -v -n %2 -tr %SIGNTOOL_TIMESTAMP_URL% -fd sha256 -td sha256 -as %1
|
||||
pwsh -File "%~dp0sign_azure.ps1" %1
|
||||
|
@ -0,0 +1,40 @@
|
||||
# Signing script for Azure Code Signing
|
||||
# Arguments: sign_azure.ps1 path_to_sign
|
||||
#
|
||||
# Environment variables must be set up before use:
|
||||
#
|
||||
# AZURE_TENANT_ID
|
||||
# AZURE_CLIENT_ID
|
||||
# AZURE_CLIENT_SECRET
|
||||
# AZURE_CODESIGN_ACCOUNT_NAME
|
||||
# AZURE_CODESIGN_ENDPOINT
|
||||
# AZURE_CODESIGN_PROFILE_NAME
|
||||
|
||||
Param
|
||||
(
|
||||
# Files folder
|
||||
[Parameter(Mandatory=$true, Position=0)]
|
||||
$FilesFolder
|
||||
)
|
||||
|
||||
if (!$Env:AZURE_CODESIGN_ENDPOINT -or !$Env:AZURE_CODESIGN_ACCOUNT_NAME -or !$Env:AZURE_CODESIGN_PROFILE_NAME -or
|
||||
!$Env:AZURE_TENANT_ID -or !$Env:AZURE_CLIENT_ID -or !$Env:AZURE_CLIENT_SECRET)
|
||||
{
|
||||
"Code signing variables not found; most likely running in a fork. Skipping signing."
|
||||
exit
|
||||
}
|
||||
|
||||
Install-Module -Name AzureCodeSigning -Scope CurrentUser -RequiredVersion 0.3.0 -Force -Repository PSGallery
|
||||
|
||||
$params = @{}
|
||||
|
||||
$params["Endpoint"] = $Env:AZURE_CODESIGN_ENDPOINT
|
||||
$params["CodeSigningAccountName"] = $Env:AZURE_CODESIGN_ACCOUNT_NAME
|
||||
$params["CertificateProfileName"] = $Env:AZURE_CODESIGN_PROFILE_NAME
|
||||
$params["FilesFolder"] = $FilesFolder
|
||||
$params["FilesFolderFilter"] = "exe"
|
||||
$params["FileDigest"] = "SHA256"
|
||||
$params["TimestampRfc3161"] = "http://timestamp.acs.microsoft.com"
|
||||
$params["TimestampDigest"] = "SHA256"
|
||||
|
||||
Invoke-AzureCodeSigning @params
|
@ -0,0 +1,224 @@
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD 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, version 2.
|
||||
* OpenTTD 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 OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/** @file cachecheck.cpp Check caches. */
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "aircraft.h"
|
||||
#include "company_base.h"
|
||||
#include "debug.h"
|
||||
#include "industry.h"
|
||||
#include "roadstop_base.h"
|
||||
#include "roadveh.h"
|
||||
#include "ship.h"
|
||||
#include "station_base.h"
|
||||
#include "station_map.h"
|
||||
#include "subsidy_func.h"
|
||||
#include "town.h"
|
||||
#include "train.h"
|
||||
#include "vehicle_base.h"
|
||||
|
||||
#include "safeguards.h"
|
||||
|
||||
extern void AfterLoadCompanyStats();
|
||||
extern void RebuildTownCaches();
|
||||
|
||||
/**
|
||||
* Check the validity of some of the caches.
|
||||
* Especially in the sense of desyncs between
|
||||
* the cached value and what the value would
|
||||
* be when calculated from the 'base' data.
|
||||
*/
|
||||
void CheckCaches()
|
||||
{
|
||||
/* Return here so it is easy to add checks that are run
|
||||
* always to aid testing of caches. */
|
||||
if (_debug_desync_level <= 1) return;
|
||||
|
||||
/* Check the town caches. */
|
||||
std::vector<TownCache> old_town_caches;
|
||||
for (const Town *t : Town::Iterate()) {
|
||||
old_town_caches.push_back(t->cache);
|
||||
}
|
||||
|
||||
RebuildTownCaches();
|
||||
RebuildSubsidisedSourceAndDestinationCache();
|
||||
|
||||
uint i = 0;
|
||||
for (Town *t : Town::Iterate()) {
|
||||
if (old_town_caches[i] != t->cache) {
|
||||
Debug(desync, 2, "warning: town cache mismatch: town {}", t->index);
|
||||
}
|
||||
i++;
|
||||
}
|
||||
|
||||
/* Check company infrastructure cache. */
|
||||
std::vector<CompanyInfrastructure> old_infrastructure;
|
||||
for (const Company *c : Company::Iterate()) old_infrastructure.push_back(c->infrastructure);
|
||||
|
||||
AfterLoadCompanyStats();
|
||||
|
||||
i = 0;
|
||||
for (const Company *c : Company::Iterate()) {
|
||||
if (old_infrastructure[i] != c->infrastructure) {
|
||||
Debug(desync, 2, "warning: infrastructure cache mismatch: company {}", c->index);
|
||||
}
|
||||
i++;
|
||||
}
|
||||
|
||||
/* Strict checking of the road stop cache entries */
|
||||
for (const RoadStop *rs : RoadStop::Iterate()) {
|
||||
if (IsBayRoadStopTile(rs->xy)) continue;
|
||||
|
||||
assert(rs->GetEntry(DIAGDIR_NE) != rs->GetEntry(DIAGDIR_NW));
|
||||
rs->GetEntry(DIAGDIR_NE)->CheckIntegrity(rs);
|
||||
rs->GetEntry(DIAGDIR_NW)->CheckIntegrity(rs);
|
||||
}
|
||||
|
||||
std::vector<NewGRFCache> grf_cache;
|
||||
std::vector<VehicleCache> veh_cache;
|
||||
std::vector<GroundVehicleCache> gro_cache;
|
||||
std::vector<TrainCache> tra_cache;
|
||||
|
||||
for (Vehicle *v : Vehicle::Iterate()) {
|
||||
if (v != v->First() || v->vehstatus & VS_CRASHED || !v->IsPrimaryVehicle()) continue;
|
||||
|
||||
for (const Vehicle *u = v; u != nullptr; u = u->Next()) {
|
||||
FillNewGRFVehicleCache(u);
|
||||
grf_cache.emplace_back(u->grf_cache);
|
||||
veh_cache.emplace_back(u->vcache);
|
||||
switch (u->type) {
|
||||
case VEH_TRAIN:
|
||||
gro_cache.emplace_back(Train::From(u)->gcache);
|
||||
tra_cache.emplace_back(Train::From(u)->tcache);
|
||||
break;
|
||||
case VEH_ROAD:
|
||||
gro_cache.emplace_back(RoadVehicle::From(u)->gcache);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
switch (v->type) {
|
||||
case VEH_TRAIN: Train::From(v)->ConsistChanged(CCF_TRACK); break;
|
||||
case VEH_ROAD: RoadVehUpdateCache(RoadVehicle::From(v)); break;
|
||||
case VEH_AIRCRAFT: UpdateAircraftCache(Aircraft::From(v)); break;
|
||||
case VEH_SHIP: Ship::From(v)->UpdateCache(); break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
uint length = 0;
|
||||
for (const Vehicle *u = v; u != nullptr; u = u->Next()) {
|
||||
FillNewGRFVehicleCache(u);
|
||||
if (grf_cache[length] != u->grf_cache) {
|
||||
Debug(desync, 2, "warning: newgrf cache mismatch: type {}, vehicle {}, company {}, unit number {}, wagon {}", v->type, v->index, v->owner, v->unitnumber, length);
|
||||
}
|
||||
if (veh_cache[length] != u->vcache) {
|
||||
Debug(desync, 2, "warning: vehicle cache mismatch: type {}, vehicle {}, company {}, unit number {}, wagon {}", v->type, v->index, v->owner, v->unitnumber, length);
|
||||
}
|
||||
switch (u->type) {
|
||||
case VEH_TRAIN:
|
||||
if (gro_cache[length] != Train::From(u)->gcache) {
|
||||
Debug(desync, 2, "warning: train ground vehicle cache mismatch: vehicle {}, company {}, unit number {}, wagon {}", v->index, v->owner, v->unitnumber, length);
|
||||
}
|
||||
if (tra_cache[length] != Train::From(u)->tcache) {
|
||||
Debug(desync, 2, "warning: train cache mismatch: vehicle {}, company {}, unit number {}, wagon {}", v->index, v->owner, v->unitnumber, length);
|
||||
}
|
||||
break;
|
||||
case VEH_ROAD:
|
||||
if (gro_cache[length] != RoadVehicle::From(u)->gcache) {
|
||||
Debug(desync, 2, "warning: road vehicle ground vehicle cache mismatch: vehicle {}, company {}, unit number {}, wagon {}", v->index, v->owner, v->unitnumber, length);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
length++;
|
||||
}
|
||||
|
||||
grf_cache.clear();
|
||||
veh_cache.clear();
|
||||
gro_cache.clear();
|
||||
tra_cache.clear();
|
||||
}
|
||||
|
||||
/* Check whether the caches are still valid */
|
||||
for (Vehicle *v : Vehicle::Iterate()) {
|
||||
[[maybe_unused]] const auto a = v->cargo.PeriodsInTransit();
|
||||
[[maybe_unused]] const auto b = v->cargo.TotalCount();
|
||||
[[maybe_unused]] const auto c = v->cargo.GetFeederShare();
|
||||
v->cargo.InvalidateCache();
|
||||
assert(a == v->cargo.PeriodsInTransit());
|
||||
assert(b == v->cargo.TotalCount());
|
||||
assert(c == v->cargo.GetFeederShare());
|
||||
}
|
||||
|
||||
/* Backup stations_near */
|
||||
std::vector<StationList> old_town_stations_near;
|
||||
for (Town *t : Town::Iterate()) old_town_stations_near.push_back(t->stations_near);
|
||||
|
||||
std::vector<StationList> old_industry_stations_near;
|
||||
for (Industry *ind : Industry::Iterate()) old_industry_stations_near.push_back(ind->stations_near);
|
||||
|
||||
std::vector<IndustryList> old_station_industries_near;
|
||||
for (Station *st : Station::Iterate()) old_station_industries_near.push_back(st->industries_near);
|
||||
|
||||
for (Station *st : Station::Iterate()) {
|
||||
for (GoodsEntry &ge : st->goods) {
|
||||
[[maybe_unused]] const auto a = ge.cargo.PeriodsInTransit();
|
||||
[[maybe_unused]] const auto b = ge.cargo.TotalCount();
|
||||
ge.cargo.InvalidateCache();
|
||||
assert(a == ge.cargo.PeriodsInTransit());
|
||||
assert(b == ge.cargo.TotalCount());
|
||||
}
|
||||
|
||||
/* Check docking tiles */
|
||||
TileArea ta;
|
||||
std::map<TileIndex, bool> docking_tiles;
|
||||
for (TileIndex tile : st->docking_station) {
|
||||
ta.Add(tile);
|
||||
docking_tiles[tile] = IsDockingTile(tile);
|
||||
}
|
||||
UpdateStationDockingTiles(st);
|
||||
if (ta.tile != st->docking_station.tile || ta.w != st->docking_station.w || ta.h != st->docking_station.h) {
|
||||
Debug(desync, 2, "warning: station docking mismatch: station {}, company {}", st->index, st->owner);
|
||||
}
|
||||
for (TileIndex tile : ta) {
|
||||
if (docking_tiles[tile] != IsDockingTile(tile)) {
|
||||
Debug(desync, 2, "warning: docking tile mismatch: tile {}", tile);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Station::RecomputeCatchmentForAll();
|
||||
|
||||
/* Check industries_near */
|
||||
i = 0;
|
||||
for (Station *st : Station::Iterate()) {
|
||||
if (st->industries_near != old_station_industries_near[i]) {
|
||||
Debug(desync, 2, "warning: station industries near mismatch: station {}", st->index);
|
||||
}
|
||||
i++;
|
||||
}
|
||||
|
||||
/* Check stations_near */
|
||||
i = 0;
|
||||
for (Town *t : Town::Iterate()) {
|
||||
if (t->stations_near != old_town_stations_near[i]) {
|
||||
Debug(desync, 2, "warning: town stations near mismatch: town {}", t->index);
|
||||
}
|
||||
i++;
|
||||
}
|
||||
i = 0;
|
||||
for (Industry *ind : Industry::Iterate()) {
|
||||
if (ind->stations_near != old_industry_stations_near[i]) {
|
||||
Debug(desync, 2, "warning: industry stations near mismatch: industry {}", ind->index);
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD 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, version 2.
|
||||
* OpenTTD 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 OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/** @file dropdown_func.h Functions related to the drop down widget. */
|
||||
|
||||
#ifndef DROPDOWN_FUNC_H
|
||||
#define DROPDOWN_FUNC_H
|
||||
|
||||
#include "window_gui.h"
|
||||
|
||||
/* Show drop down menu containing a fixed list of strings */
|
||||
void ShowDropDownMenu(Window *w, std::span<const StringID> strings, int selected, WidgetID button, uint32_t disabled_mask, uint32_t hidden_mask, uint width = 0);
|
||||
|
||||
/* Helper functions for commonly used drop down list items. */
|
||||
std::unique_ptr<DropDownListItem> MakeDropDownListDividerItem();
|
||||
std::unique_ptr<DropDownListItem> MakeDropDownListStringItem(StringID str, int value, bool masked = false, bool shaded = false);
|
||||
std::unique_ptr<DropDownListItem> MakeDropDownListStringItem(const std::string &str, int value, bool masked = false, bool shaded = false);
|
||||
std::unique_ptr<DropDownListItem> MakeDropDownListIconItem(SpriteID sprite, PaletteID palette, StringID str, int value, bool masked = false, bool shaded = false);
|
||||
std::unique_ptr<DropDownListItem> MakeDropDownListIconItem(const Dimension &dim, SpriteID sprite, PaletteID palette, StringID str, int value, bool masked = false, bool shaded = false);
|
||||
std::unique_ptr<DropDownListItem> MakeDropDownListCheckedItem(bool checked, StringID str, int value, bool masked = false, bool shaded = false);
|
||||
|
||||
#endif /* DROPDOWN_FUNC_H */
|
@ -0,0 +1,60 @@
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD 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, version 2.
|
||||
* OpenTTD 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 OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/** @file dropdown_type.h Types related to the drop down widget. */
|
||||
|
||||
#ifndef DROPDOWN_TYPE_H
|
||||
#define DROPDOWN_TYPE_H
|
||||
|
||||
#include "window_type.h"
|
||||
#include "gfx_func.h"
|
||||
#include "gfx_type.h"
|
||||
#include "palette_func.h"
|
||||
#include "window_gui.h"
|
||||
|
||||
/**
|
||||
* Base list item class from which others are derived.
|
||||
*/
|
||||
class DropDownListItem {
|
||||
public:
|
||||
int result; ///< Result value to return to window on selection.
|
||||
bool masked; ///< Masked and unselectable item.
|
||||
bool shaded; ///< Shaded item, affects text colour.
|
||||
|
||||
explicit DropDownListItem(int result, bool masked = false, bool shaded = false) : result(result), masked(masked), shaded(shaded) {}
|
||||
virtual ~DropDownListItem() = default;
|
||||
|
||||
virtual bool Selectable() const { return true; }
|
||||
virtual uint Height() const { return 0; }
|
||||
virtual uint Width() const { return 0; }
|
||||
|
||||
virtual void Draw(const Rect &full, const Rect &, bool, Colours bg_colour) const
|
||||
{
|
||||
if (this->masked) GfxFillRect(full, GetColourGradient(bg_colour, SHADE_LIGHT), FILLRECT_CHECKER);
|
||||
}
|
||||
|
||||
TextColour GetColour(bool sel) const
|
||||
{
|
||||
if (this->shaded) return (sel ? TC_SILVER : TC_GREY) | TC_NO_SHADE;
|
||||
return sel ? TC_WHITE : TC_BLACK;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* A drop down list is a collection of drop down list items.
|
||||
*/
|
||||
typedef std::vector<std::unique_ptr<const DropDownListItem>> DropDownList;
|
||||
|
||||
void ShowDropDownListAt(Window *w, DropDownList &&list, int selected, WidgetID button, Rect wi_rect, Colours wi_colour, bool instant_close = false, bool persist = false);
|
||||
|
||||
void ShowDropDownList(Window *w, DropDownList &&list, int selected, WidgetID button, uint width = 0, bool instant_close = false, bool persist = false);
|
||||
|
||||
Dimension GetDropDownListDimension(const DropDownList &list);
|
||||
|
||||
void ReplaceDropDownList(Window *parent, DropDownList &&list);
|
||||
|
||||
#endif /* DROPDOWN_TYPE_H */
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue