Rearrange headers
Now we have public headers arranged as follows:
$SPIRV_TOOLS_ROOT/include/spirv-tools/libspirv.h
$SPIRV_TOOLS_ROOT/include/spirv/spirv.h
$SPIRV_TOOLS_ROOT/include/spirv/GLSL.std.450.h
$SPIRV_TOOLS_ROOT/include/spirv/OpenCL.std.h
A project should use -I$SPIRV_TOOLS_ROOT/include
and then #include "spirv-tools/libspirv.h"
The headers from the SPIR-V Registry can be accessed as "spirv/spirv."
for example.
The install target should also install the headers from the SPIR-V
Registry. The libspirv.h header is broken otherwise.
The SPIRV-Tools library depends on the headers from the SPIR-V Registry.
The util/bitutils.h and util/hex_float.h are pulled into the internal
source tree. Those are not part of the public API to SPIRV-Tools.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f200b09..f9f56eb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -104,9 +104,12 @@
endfunction()
set(SPIRV_SOURCES
- ${CMAKE_CURRENT_SOURCE_DIR}/include/libspirv/libspirv.h
- ${CMAKE_CURRENT_SOURCE_DIR}/include/util/bitutils.h
- ${CMAKE_CURRENT_SOURCE_DIR}/include/util/hex_float.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/include/spirv-tools/libspirv.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/include/spirv/spirv.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/include/spirv/GLSL.std.450.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/include/spirv/OpenCL.std.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/source/util/bitutils.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/source/util/hex_float.h
${CMAKE_CURRENT_SOURCE_DIR}/source/assembly_grammar.h
${CMAKE_CURRENT_SOURCE_DIR}/source/binary.h
${CMAKE_CURRENT_SOURCE_DIR}/source/diagnostic.h
@@ -145,9 +148,7 @@
add_library(${SPIRV_TOOLS} ${SPIRV_SOURCES})
spvtools_default_compile_options(${SPIRV_TOOLS})
-target_include_directories(${SPIRV_TOOLS} PUBLIC
- ${CMAKE_CURRENT_SOURCE_DIR}/include
- ${CMAKE_CURRENT_SOURCE_DIR}/external/include)
+target_include_directories(${SPIRV_TOOLS} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
# Defaults to OFF if the user didn't set it.
option(SPIRV_SKIP_EXECUTABLES
@@ -277,5 +278,11 @@
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
-install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/libspirv/libspirv.h
- DESTINATION include/libspirv/)
+install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/spirv-tools/libspirv.h
+ DESTINATION include/spirv-tools/)
+# The installation is broken without these header files from the SPIR-V Registry.
+# The libspirv.h header includes them.
+install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/spirv/spirv.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/include/spirv/GLSL.std.450.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/include/spirv/OpenCL.std.h
+ DESTINATION include/spirv/)
diff --git a/include/libspirv/libspirv.h b/include/spirv-tools/libspirv.h
similarity index 98%
rename from include/libspirv/libspirv.h
rename to include/spirv-tools/libspirv.h
index 25b9755..9073bcf 100644
--- a/include/libspirv/libspirv.h
+++ b/include/spirv-tools/libspirv.h
@@ -24,12 +24,12 @@
// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
// MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-#ifndef LIBSPIRV_LIBSPIRV_LIBSPIRV_H_
-#define LIBSPIRV_LIBSPIRV_LIBSPIRV_H_
+#ifndef SPIRV_TOOLS_LIBSPIRV_H_
+#define SPIRV_TOOLS_LIBSPIRV_H_
-#include "headers/GLSL.std.450.h"
-#include "headers/OpenCL.std.h"
-#include "headers/spirv.h"
+#include "spirv/GLSL.std.450.h"
+#include "spirv/OpenCL.std.h"
+#include "spirv/spirv.h"
#ifdef __cplusplus
extern "C" {
@@ -448,4 +448,4 @@
}
#endif
-#endif // LIBSPIRV_LIBSPIRV_LIBSPIRV_H_
+#endif // SPIRV_TOOLS_LIBSPIRV_H_
diff --git a/external/include/headers/GLSL.std.450.h b/include/spirv/GLSL.std.450.h
similarity index 100%
rename from external/include/headers/GLSL.std.450.h
rename to include/spirv/GLSL.std.450.h
diff --git a/external/include/headers/OpenCL.std.h b/include/spirv/OpenCL.std.h
similarity index 100%
rename from external/include/headers/OpenCL.std.h
rename to include/spirv/OpenCL.std.h
diff --git a/external/include/headers/spirv.h b/include/spirv/spirv.h
similarity index 100%
rename from external/include/headers/spirv.h
rename to include/spirv/spirv.h
diff --git a/external/include/headers/spirv.py b/include/spirv/spirv.py
similarity index 100%
rename from external/include/headers/spirv.py
rename to include/spirv/spirv.py
diff --git a/source/assembly_grammar.h b/source/assembly_grammar.h
index 15f34da..fab31b8 100644
--- a/source/assembly_grammar.h
+++ b/source/assembly_grammar.h
@@ -27,8 +27,8 @@
#ifndef LIBSPIRV_ASSEMBLY_GRAMMAR_H_
#define LIBSPIRV_ASSEMBLY_GRAMMAR_H_
-#include "libspirv/libspirv.h"
#include "operand.h"
+#include "spirv-tools/libspirv.h"
#include "table.h"
namespace libspirv {
diff --git a/source/binary.cpp b/source/binary.cpp
index bedd3b0..4db3226 100644
--- a/source/binary.cpp
+++ b/source/binary.cpp
@@ -36,9 +36,9 @@
#include "assembly_grammar.h"
#include "diagnostic.h"
#include "ext_inst.h"
-#include "libspirv/libspirv.h"
#include "opcode.h"
#include "operand.h"
+#include "spirv-tools/libspirv.h"
#include "spirv_constant.h"
#include "spirv_endian.h"
diff --git a/source/binary.h b/source/binary.h
index c51fe5f..7155597 100644
--- a/source/binary.h
+++ b/source/binary.h
@@ -27,7 +27,7 @@
#ifndef LIBSPIRV_BINARY_H_
#define LIBSPIRV_BINARY_H_
-#include "libspirv/libspirv.h"
+#include "spirv-tools/libspirv.h"
#include "table.h"
// Functions
diff --git a/source/diagnostic.cpp b/source/diagnostic.cpp
index 60502c0..a785354 100644
--- a/source/diagnostic.cpp
+++ b/source/diagnostic.cpp
@@ -31,7 +31,7 @@
#include <iostream>
-#include "libspirv/libspirv.h"
+#include "spirv-tools/libspirv.h"
// Diagnostic API
diff --git a/source/diagnostic.h b/source/diagnostic.h
index c80b77d..38a35ea 100644
--- a/source/diagnostic.h
+++ b/source/diagnostic.h
@@ -31,7 +31,7 @@
#include <sstream>
#include <utility>
-#include "libspirv/libspirv.h"
+#include "spirv-tools/libspirv.h"
namespace libspirv {
diff --git a/source/disassemble.cpp b/source/disassemble.cpp
index 1605924..9fae7e5 100644
--- a/source/disassemble.cpp
+++ b/source/disassemble.cpp
@@ -36,9 +36,9 @@
#include "binary.h"
#include "diagnostic.h"
#include "ext_inst.h"
-#include "libspirv/libspirv.h"
#include "opcode.h"
#include "print.h"
+#include "spirv-tools/libspirv.h"
#include "spirv_constant.h"
#include "spirv_endian.h"
#include "util/hex_float.h"
diff --git a/source/ext_inst.h b/source/ext_inst.h
index 1fd5813..f4dcecb 100644
--- a/source/ext_inst.h
+++ b/source/ext_inst.h
@@ -27,7 +27,7 @@
#ifndef LIBSPIRV_EXT_INST_H_
#define LIBSPIRV_EXT_INST_H_
-#include "libspirv/libspirv.h"
+#include "spirv-tools/libspirv.h"
#include "table.h"
// Gets the type of the extended instruction set with the specified name.
diff --git a/source/instruction.h b/source/instruction.h
index 61549b6..9188592 100644
--- a/source/instruction.h
+++ b/source/instruction.h
@@ -30,7 +30,7 @@
#include <cstdint>
#include <vector>
-#include "headers/spirv.h"
+#include "spirv/spirv.h"
#include "table.h"
diff --git a/source/opcode.cpp b/source/opcode.cpp
index 68c45bb..63ba9a9 100644
--- a/source/opcode.cpp
+++ b/source/opcode.cpp
@@ -32,7 +32,7 @@
#include <cstdlib>
#include "instruction.h"
-#include "libspirv/libspirv.h"
+#include "spirv-tools/libspirv.h"
#include "spirv_constant.h"
#include "spirv_endian.h"
#include "spirv_operands.h"
diff --git a/source/opcode.h b/source/opcode.h
index 8fe9e1f..e6ff14a 100644
--- a/source/opcode.h
+++ b/source/opcode.h
@@ -28,7 +28,7 @@
#define LIBSPIRV_OPCODE_H_
#include "instruction.h"
-#include "libspirv/libspirv.h"
+#include "spirv-tools/libspirv.h"
#include "table.h"
// Returns the name of a registered SPIR-V generator as a null-terminated
diff --git a/source/operand.h b/source/operand.h
index fe15a42..78fc918 100644
--- a/source/operand.h
+++ b/source/operand.h
@@ -29,7 +29,7 @@
#include <deque>
-#include "libspirv/libspirv.h"
+#include "spirv-tools/libspirv.h"
#include "table.h"
// A sequence of operand types.
diff --git a/source/spirv_constant.h b/source/spirv_constant.h
index 0c85fbf..3ade7cc 100644
--- a/source/spirv_constant.h
+++ b/source/spirv_constant.h
@@ -27,7 +27,7 @@
#ifndef LIBSPIRV_SPIRV_CONSTANT_H_
#define LIBSPIRV_SPIRV_CONSTANT_H_
-#include "libspirv/libspirv.h"
+#include "spirv-tools/libspirv.h"
// Version number macros.
diff --git a/source/spirv_definition.h b/source/spirv_definition.h
index 3872e76..d7424dc 100644
--- a/source/spirv_definition.h
+++ b/source/spirv_definition.h
@@ -29,7 +29,7 @@
#include <cstdint>
-#include "libspirv/libspirv.h"
+#include "spirv-tools/libspirv.h"
// A bit mask representing a set of capabilities.
// Currently there are 57 distinct capabilities, so 64 bits
diff --git a/source/spirv_endian.h b/source/spirv_endian.h
index 9d06b29..57ffc4f 100644
--- a/source/spirv_endian.h
+++ b/source/spirv_endian.h
@@ -27,7 +27,7 @@
#ifndef LIBSPIRV_SPIRV_ENDIAN_H_
#define LIBSPIRV_SPIRV_ENDIAN_H_
-#include "libspirv/libspirv.h"
+#include "spirv-tools/libspirv.h"
// Converts a word in the specified endianness to the host native endianness.
uint32_t spvFixWord(const uint32_t word, const spv_endianness_t endianness);
diff --git a/source/table.h b/source/table.h
index c52b9f2..9e427dd 100644
--- a/source/table.h
+++ b/source/table.h
@@ -27,7 +27,7 @@
#ifndef LIBSPIRV_TABLE_H_
#define LIBSPIRV_TABLE_H_
-#include "libspirv/libspirv.h"
+#include "spirv-tools/libspirv.h"
#include "spirv_definition.h"
#include "spirv_operands.h"
diff --git a/source/text.cpp b/source/text.cpp
index bdac21b..84b92de 100644
--- a/source/text.cpp
+++ b/source/text.cpp
@@ -43,9 +43,9 @@
#include "diagnostic.h"
#include "ext_inst.h"
#include "instruction.h"
-#include "libspirv/libspirv.h"
#include "opcode.h"
#include "operand.h"
+#include "spirv-tools/libspirv.h"
#include "spirv_constant.h"
#include "table.h"
#include "text_handler.h"
diff --git a/source/text.h b/source/text.h
index 0375522..c684174 100644
--- a/source/text.h
+++ b/source/text.h
@@ -29,8 +29,8 @@
#include <string>
-#include "libspirv/libspirv.h"
#include "operand.h"
+#include "spirv-tools/libspirv.h"
#include "spirv_constant.h"
typedef enum spv_literal_type_t {
diff --git a/source/text_handler.h b/source/text_handler.h
index 1e96206..6f003db 100644
--- a/source/text_handler.h
+++ b/source/text_handler.h
@@ -34,7 +34,7 @@
#include "diagnostic.h"
#include "instruction.h"
-#include "libspirv/libspirv.h"
+#include "spirv-tools/libspirv.h"
#include "text.h"
namespace libspirv {
diff --git a/include/util/bitutils.h b/source/util/bitutils.h
similarity index 100%
rename from include/util/bitutils.h
rename to source/util/bitutils.h
diff --git a/include/util/hex_float.h b/source/util/hex_float.h
similarity index 99%
rename from include/util/hex_float.h
rename to source/util/hex_float.h
index 3ed4efc..879d0ce 100644
--- a/include/util/hex_float.h
+++ b/source/util/hex_float.h
@@ -24,8 +24,8 @@
// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
// MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-#ifndef _LIBSPIRV_UTIL_HEX_FLOAT_H_
-#define _LIBSPIRV_UTIL_HEX_FLOAT_H_
+#ifndef LIBSPIRV_UTIL_HEX_FLOAT_H_
+#define LIBSPIRV_UTIL_HEX_FLOAT_H_
#include <cassert>
#include <cctype>
@@ -1087,4 +1087,4 @@
}
}
-#endif // _LIBSPIRV_UTIL_HEX_FLOAT_H_
+#endif // LIBSPIRV_UTIL_HEX_FLOAT_H_
diff --git a/source/validate.cpp b/source/validate.cpp
index f06c462..585053d 100644
--- a/source/validate.cpp
+++ b/source/validate.cpp
@@ -30,7 +30,7 @@
#include "binary.h"
#include "diagnostic.h"
#include "instruction.h"
-#include "libspirv/libspirv.h"
+#include "spirv-tools/libspirv.h"
#include "opcode.h"
#include "operand.h"
#include "spirv_constant.h"
diff --git a/source/validate.h b/source/validate.h
index c87aa08..d6e180a 100644
--- a/source/validate.h
+++ b/source/validate.h
@@ -34,12 +34,11 @@
#include <utility>
#include <vector>
-#include "libspirv/libspirv.h"
-
#include "assembly_grammar.h"
#include "binary.h"
#include "diagnostic.h"
#include "instruction.h"
+#include "spirv-tools/libspirv.h"
#include "spirv_definition.h"
#include "table.h"
diff --git a/source/validate_id.cpp b/source/validate_id.cpp
index f5118a8..4668504 100644
--- a/source/validate_id.cpp
+++ b/source/validate_id.cpp
@@ -31,8 +31,8 @@
#include "diagnostic.h"
#include "instruction.h"
-#include "libspirv/libspirv.h"
#include "opcode.h"
+#include "spirv-tools/libspirv.h"
#include "validate.h"
#define spvCheck(condition, action) \
diff --git a/source/validate_layout.cpp b/source/validate_layout.cpp
index dd30c2b..42f935c 100644
--- a/source/validate_layout.cpp
+++ b/source/validate_layout.cpp
@@ -27,7 +27,7 @@
// Source code for logical layout validation as described in section 2.4
#include "validate_passes.h"
-#include "libspirv/libspirv.h"
+#include "spirv-tools/libspirv.h"
#include "diagnostic.h"
#include "opcode.h"
diff --git a/source/validate_types.cpp b/source/validate_types.cpp
index 39fcdcf..f0bb998 100644
--- a/source/validate_types.cpp
+++ b/source/validate_types.cpp
@@ -31,7 +31,7 @@
#include <unordered_set>
#include <vector>
-#include "headers/spirv.h"
+#include "spirv/spirv.h"
#include "spirv_definition.h"
#include "validate.h"
diff --git a/test/HexFloat.cpp b/test/HexFloat.cpp
index a2c5521..1c783cd 100644
--- a/test/HexFloat.cpp
+++ b/test/HexFloat.cpp
@@ -33,7 +33,7 @@
#include <gmock/gmock.h>
#include "UnitSPIRV.h"
-#include "util/hex_float.h"
+#include "source/util/hex_float.h"
namespace {
using ::testing::Eq;
diff --git a/test/ImmediateInt.cpp b/test/ImmediateInt.cpp
index ebd30a2..bdfdd87 100644
--- a/test/ImmediateInt.cpp
+++ b/test/ImmediateInt.cpp
@@ -30,8 +30,8 @@
#include <gmock/gmock.h>
+#include "source/util/bitutils.h"
#include "TestFixture.h"
-#include "util/bitutils.h"
namespace {
diff --git a/test/TextToBinary.cpp b/test/TextToBinary.cpp
index 9f51867..e30e332 100644
--- a/test/TextToBinary.cpp
+++ b/test/TextToBinary.cpp
@@ -33,8 +33,8 @@
#include "TestFixture.h"
#include "UnitSPIRV.h"
#include "source/spirv_constant.h"
-#include "util/bitutils.h"
-#include "util/hex_float.h"
+#include "source/util/bitutils.h"
+#include "source/util/hex_float.h"
namespace {
diff --git a/test/UnitSPIRV.h b/test/UnitSPIRV.h
index 0264bdf..558b790 100644
--- a/test/UnitSPIRV.h
+++ b/test/UnitSPIRV.h
@@ -31,7 +31,6 @@
#include <iomanip>
-#include "libspirv/libspirv.h"
#include "source/assembly_grammar.h"
#include "source/binary.h"
#include "source/diagnostic.h"
@@ -40,6 +39,7 @@
#include "source/text.h"
#include "source/text_handler.h"
#include "source/validate.h"
+#include "spirv-tools/libspirv.h"
#include <gtest/gtest.h>
diff --git a/test/ValidationState.cpp b/test/ValidationState.cpp
index fc164b9..a172b97 100644
--- a/test/ValidationState.cpp
+++ b/test/ValidationState.cpp
@@ -30,7 +30,7 @@
#include <gtest/gtest.h>
#include <vector>
-#include "headers/spirv.h"
+#include "spirv/spirv.h"
#include "source/validate.h"
diff --git a/tools/as/as.cpp b/tools/as/as.cpp
index 96f2cad..c7380b6 100644
--- a/tools/as/as.cpp
+++ b/tools/as/as.cpp
@@ -28,7 +28,7 @@
#include <vector>
-#include "libspirv/libspirv.h"
+#include "spirv-tools/libspirv.h"
void print_usage(char* argv0) {
printf(
diff --git a/tools/dis/dis.cpp b/tools/dis/dis.cpp
index 48664de..cd472d0 100644
--- a/tools/dis/dis.cpp
+++ b/tools/dis/dis.cpp
@@ -29,7 +29,7 @@
#include <string>
#include <vector>
-#include "libspirv/libspirv.h"
+#include "spirv-tools/libspirv.h"
static void print_usage(char* argv0) {
printf(
diff --git a/tools/val/val.cpp b/tools/val/val.cpp
index bc29dd4..db05364 100644
--- a/tools/val/val.cpp
+++ b/tools/val/val.cpp
@@ -30,7 +30,7 @@
#include <vector>
-#include "libspirv/libspirv.h"
+#include "spirv-tools/libspirv.h"
void print_usage(char* argv0) {
printf(