Juan Ramos
cf1fbbff44
Only install/test if PROJECT_IS_TOP_LEVEL
...
Further remove installing glslangtests. There isn't a need to do
that. glslangtests isn't a deliverable.
2023-12-01 18:35:36 -05:00
Juan Ramos
3b99124593
Add GLSLANG_TESTS option
...
1 variable instead of ENABLE_CTEST and BUILD_TESTING.
OFF by default. See README.md for explanation.
2023-12-01 13:43:54 -05:00
Juan Ramos
6be56e45e5
Remove OGLCompiler
and HLSL
stub libraries from build
...
Fixes ranlib warnings complaining about empty archive libraries.
Simplifie build/code.
2023-11-29 08:20:27 -05:00
Moritz Heinemann
eac012fff3
Fix spirv-tools dependency
2023-11-20 18:28:38 -05:00
Chuang Zhu
dfc97740ff
Use CMAKE_INSTALL_FULL_LIBDIR in compat cmake files
...
According to
https://cmake.org/cmake/help/v3.25/module/GNUInstallDirs.html ,
CMAKE_INSTALL_LIBDIR can be an absolute path. For instance, Nixpkgs
[defined it to an absolute path in /nix/store](3d17b4c305/pkgs/development/tools/build-managers/cmake/setup-hook.sh (L101)
).
The output in this case is:
# result-glslang/lib/cmake/glslangTargets.cmake:5
include("${CMAKE_CURRENT_LIST_DIR}/../..//nix/store/3mif2zibig0cilk5dbz334278n0vlq9s-glslang-1.3.231.0/lib/glslang/glslang-targets.cmake")
Signed-off-by: Chuang Zhu <git@chuang.cz>
2023-05-02 15:46:45 -06:00
Sven-Hendrik Haase
88fd417b0b
Fix locations of cmake files in side compat shims
...
In https://github.com/KhronosGroup/glslang/pull/3027 , the installed cmake files were
stuck into a /cmake subdir but this isn't reflected in these compatibility shims.
2022-11-16 16:54:09 -07:00
Andrea Pappacoda
1b32fc8eb2
build: install glslang-config.cmake to libdir
...
As glslang ships architecture dependant files, the Config file should be
installed to libdir, not datadir. See
https://github.com/KhronosGroup/glslang/pull/2989#discussion_r955367103
for more details.
Here's the diff between the install tree before and after this patch:
$ diff <(tree install-datadir) <(tree install)
1c1
< install-datadir
---
> install
74,99c74,98
< ├── lib
< │ ├── cmake
< │ │ ├── glslang-default-resource-limitsTargets.cmake
< │ │ ├── glslangTargets.cmake
< │ │ ├── glslangValidatorTargets.cmake
< │ │ ├── HLSLTargets.cmake
< │ │ ├── OGLCompilerTargets.cmake
< │ │ ├── OSDependentTargets.cmake
< │ │ ├── spirv-remapTargets.cmake
< │ │ ├── SPIRVTargets.cmake
< │ │ └── SPVRemapperTargets.cmake
< │ ├── libGenericCodeGen.a
< │ ├── libglslang.a
< │ ├── libglslang-default-resource-limits.a
< │ ├── libHLSL.a
< │ ├── libMachineIndependent.a
< │ ├── libOGLCompiler.a
< │ ├── libOSDependent.a
< │ ├── libSPIRV.a
< │ └── libSPVRemapper.a
< └── share
< └── glslang
< ├── glslang-config.cmake
< ├── glslang-config-version.cmake
< ├── glslang-targets.cmake
< └── glslang-targets-debug.cmake
---
> └── lib
> ├── cmake
> │ ├── glslang-default-resource-limitsTargets.cmake
> │ ├── glslangTargets.cmake
> │ ├── glslangValidatorTargets.cmake
> │ ├── HLSLTargets.cmake
> │ ├── OGLCompilerTargets.cmake
> │ ├── OSDependentTargets.cmake
> │ ├── spirv-remapTargets.cmake
> │ ├── SPIRVTargets.cmake
> │ └── SPVRemapperTargets.cmake
> ├── glslang
> │ ├── glslang-config.cmake
> │ ├── glslang-config-version.cmake
> │ ├── glslang-targets.cmake
> │ └── glslang-targets-debug.cmake
> ├── libGenericCodeGen.a
> ├── libglslang.a
> ├── libglslang-default-resource-limits.a
> ├── libHLSL.a
> ├── libMachineIndependent.a
> ├── libOGLCompiler.a
> ├── libOSDependent.a
> ├── libSPIRV.a
> └── libSPVRemapper.a
101c100
< 15 directories, 83 files
---
> 14 directories, 83 files
2022-08-25 23:15:14 +02:00
MACHIZAUD Andréa
fb64704060
Add unified glslang
CMake config collecting glslang-targets
targets ( #2989 )
2022-08-02 18:16:03 -06:00
Nathaniel Cesario
c8ef4f8a9f
cmake: Remove "conditions" from endif
...
See https://cmake.org/cmake/help/latest/command/endif.html and
https://cmake.org/cmake/help/latest/command/if.html .
If the else/endif condition does not match the if condition verbatim,
an error is produced on some versions of cmake. This change removes
these "legacy conditions."
2021-09-30 11:00:09 -06:00
Greg Fischer
e7e4a8eecb
Merge pull request #2522 from dneto0/intlog2
...
Add IntLog2 and use it
2021-04-14 15:16:04 -06:00
David Neto
fa6e3c2737
Add IntLog2 and use it
...
Replace uses of floating point log2 when we want an integer result from
an integer operand. This avoids concerns about accuracy of floating
point library functions.
2021-04-13 14:09:44 -06:00
greg-lunarg
4e064eef46
Revert "Revert "GL_ext_vulkan_glsl_relaxed extension support, and cross stage aware IO mapper""
2021-03-15 11:26:11 -06:00
greg-lunarg
e063363878
Revert "GL_ext_vulkan_glsl_relaxed extension support, and cross stage aware IO mapper"
2021-03-10 11:26:43 -07:00
will brown
ecc9b9149f
Implement GL_EXT_vulkan_glsl_relaxed option
2021-03-08 13:31:39 -05:00
pheonix
c897c3bc23
Add new SpirvToolsDisassemble API interface + Improve Doc on existing API interface ( #2442 )
...
* Add new SpirvToolsDisassemble API interface + Improve Doc on existing API interface (#2408 )
* Add more flexible SpirvToolsDisassemble interface to allow specifying spv_target_env for disassembly output.
Improve documentation on existing SpirvToolsDisassemble interface.
* Update pre-processor check - following existing ENABLE_OPT checks.
* Fix not-found header paths for glslangValidator and glslangtests.
* Add spirv_tools/include path where there is an ENABLE_OPT=1 in the BUILD.gn configuration.
2020-11-02 14:40:50 -07:00
John Kessenich
2b77059502
Revert "Add new SpirvToolsDisassemble API interface + Improve Doc on existing API interface ( #2408 )"
...
See issue #2413 .
This reverts commit d1929f359a
.
2020-10-05 16:58:31 -06:00
pheonix
d1929f359a
Add new SpirvToolsDisassemble API interface + Improve Doc on existing API interface ( #2408 )
...
* Add more flexible SpirvToolsDisassemble interface to allow specifying spv_target_env for disassembly output.
Improve documentation on existing SpirvToolsDisassemble interface.
* Update pre-processor check - following existing ENABLE_OPT checks.
* Fix not-found header paths for glslangValidator and glslangtests.
2020-10-05 09:59:27 -06:00
John Kessenich
f05c076e26
Revert "Add more flexible SpirvToolsDisassemble interface to allow specifying spv_target_env for disassembly output. ( #2406 )"
...
This reverts commit 2eed8236d0
.
2020-09-27 18:15:41 -06:00
pheonix
2eed8236d0
Add more flexible SpirvToolsDisassemble interface to allow specifying spv_target_env for disassembly output. ( #2406 )
...
Improve documentation on existing SpirvToolsDisassemble interface.
Fix cmake build scripts to account for `spirv-tools` external when -DENABLE_OPT=ON
2020-09-27 17:53:18 -06:00
Ben Clayton
31cad22758
Use CMake's builtin functionality for PCHs
...
`glslang_pch()` did manual mangling of the compiler flags to enable pre-compiled headers.
I couldn't get this approach to work with the `MachineIndependent` subdirectory, but fortunately CMake has added first-class support for precompiled headers in 3.16, which does work with subdirectories.
Moved `glslang_pch()` to the other global function declarations.
`glslang_pch()` is a no-op when using CMake earlier than `3.16`.
CMake's PCH implementation does not need the `pch.cpp` files, so just remove them.
2020-07-07 16:44:19 +01:00
Ben Clayton
cb261e3c21
License headers: s/Google/The Khronos Group
...
This was a copy-paste screwup, where the first line of the copyright had the company name was updated, but the company name mid way though was not.
2020-07-03 12:21:01 +01:00
Ben Clayton
1d21270ebf
Add missing copyright headers
...
Add copyright headers to build files and scripts.
Simplifies automated scanning for bad license headers.
2020-07-02 16:03:48 +01:00
John Kessenich
e01c847a70
Merge branch 'dj2-install'
2019-11-22 06:24:38 -07:00
Dan Sinclair
04567eb232
Check for ENABLE_SPVREMAPPER flag in CMakeList files.
...
There is a flag to disable the SPVRemapper during the GLSLang build.
That flag is check in some, but not all spots so if you try to build
with SPVRemapper disabled you get CMake errors and compile errors.
This CL fixs up the build so building with -DENABLE_SPVREMAPPER=0 will
complete correclty.
2019-11-21 10:33:32 -05:00
Arfrever Frehtes Taifersar Arahesis
bd69a4fb12
Respect CMAKE_INSTALL_LIBDIR in installed CMake files
...
Fixes #1965
2019-11-18 11:11:55 -08:00
James Rumble
c6f7294ced
Handle install vs build include directories
...
Fix target_include_directories to appropriately handle build-tree and the install-tree.
2019-08-06 15:29:31 +01:00
James Rumble
ab6d1499e1
Export glslang targets on installation
...
This allows the targets to be used in other cmake projects. See the following for more details:
https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html#creating-packages
https://foonathan.net/blog/2016/07/07/cmake-dependency-handling.html
2019-08-06 14:47:51 +01:00
Jeff Bolz
02ed310ac3
Rename PCH macro to glslang_pch (to avoid name collision) and update to latest spirv-tools
2018-11-07 09:35:31 -06:00
Jeff Bolz
22d0b7cbad
Use precompiled headers for some glslang projects
2018-10-31 15:38:08 -05:00
d3x0r
57a2b22d34
Update CMakeLists.txt
2017-07-04 05:59:03 -07:00
David Seifert
22afc38b55
Modernise CMake #2
...
This reverts commit cfc69d95af
.
* Change CMAKE_INSTALL_PREFIX default on Windows in order
to prevent permission denied errors when trying to install
to "Program Files".
2017-04-29 11:23:15 +02:00
John Kessenich
cfc69d95af
Revert "Modernise CMake"
2017-04-28 22:04:24 -06:00
David Seifert
8f824265ea
Make test suite optional by using CTest
2017-04-28 22:46:52 +02:00
David Seifert
5a5699bdbd
Modernise CMake
...
* Use `GNUInstallDirs` in order to respect GNU conventions.
This is especially important for multi-arch/multi-lib setups.
* Specify position independent mode building properly, without
using the historic hack of adding `-fPIC` as a definition.
This makes the build system more portable.
* Only detect C++ (and not C) to slightly speed up configuring.
* Specify C++11 mode using modern CMake idioms.
* Fix some whitespace issues.
2017-04-28 22:46:52 +02:00
Markus Tavenrath
7b89e75213
Use correct OriginUpperLeft when linking more than one shader.
2017-01-25 12:11:16 -08:00
John Kessenich
dc1a8196cf
Infrastructure: Support standard build with ENABLE_HLSL set to off.
2017-01-11 14:50:16 -07:00
David Neto
1d3a966106
Gtests can be run on another source tree
...
The gtest executable accepts a --test-root option to specify
a root directory for test files. It defaults to the Test directory
in the source tree from which the executable is built.
For example, this lets us run test exectuables built with MinGW on Linux
on a Windows machine with its own copy of the source tree.
2016-10-05 10:28:32 -04:00
Rex Xu
c9e3c3c941
Parser: Implement extension GL_AMD_gpu_shader_half_float.
...
- Add built-in types: float16_t, f16vec, f16mat.
- Add support of half float constant: hf, HF.
- Extend built-in floating-point operators: +, -, *, /, ++, --, +=, -=,
*=, /=, ==, !=, >=, <=, >, <.
- Add support of type conversions: float16_t -> XXX, XXX -> float16_t.
- Add new built-in functions.
2016-09-30 16:13:06 +08:00
steve-lunarg
65564a4ad6
Remapper: move remapper tests into the glslangtests executable.
2016-09-02 09:21:12 -06:00
steve-lunarg
a8456415b8
WIP: SPV Remapper: add remapper test framework
2016-08-25 10:46:51 -06:00
David Neto
b37dc0e458
For MinGW, statically link exes against basic runtimes
...
Avoids the need to ship basic runtimes like libgcc_s_sjlj-1.dll
with the executables.
2016-06-02 14:37:24 -04:00
Lei Zhang
1b141728a6
Test compiling shaders with given resource limits using GTest.
2016-05-19 14:18:21 -04:00
Lei Zhang
2f1ee4525d
Run link tests in the GTest framework.
2016-05-18 21:45:39 -04:00
Lei Zhang
d6f0ed2c81
Add support for testing file-based HLSL source code in GTest.
2016-05-16 12:51:13 -04:00
Andrew Woloszyn
0b887d00e0
Install the test executable alongside glslangValidator
2016-05-05 14:58:26 -04:00
Andrew Woloszyn
db0eaf9887
Updated cmake to better organize folders and options.
...
This adds solution folders that properly group gtest/glslang/hlsl.
This also marks gtest options as advanced so they don't show up
in cmake-gui by default.
2016-05-05 14:45:53 -04:00
David Neto
c0792105f1
Unit test executable should link to libHLSL
...
No unit tests exercise it.
2016-04-12 19:54:02 -04:00
Lei Zhang
414eb60482
Link in Google Test framework.
...
The existing test harness is a homemade shell script. All the tests
and the expected results are written in plain text files. The harness
just reads in a test, invoke the glslangValidator binary on it, and
compare the result with the golden file. All tests are kinda
integration tests.
This patch add Google Test as an external project, which provides a
new harness for reading shader source files, compile to SPIR-V, and
then compare with the expected output.
2016-03-31 10:31:30 -04:00