More packages
Some checks failed
Conan Packaging / Package cli11/2.6.1 (push) Successful in 21s
Conan Packaging / Package eabase/01082025 (push) Successful in 14s
Conan Packaging / Package flatbuffers/25.12.19 (push) Successful in 1m13s
Conan Packaging / Package lodepng/cci.20260210 (push) Successful in 22s
Conan Packaging / Package meshoptimizer/1.0 (push) Successful in 21s
Conan Packaging / Package mimalloc/3.2.8 (push) Successful in 23s
Conan Packaging / Package assimp/6.0.4 (push) Successful in 3m15s
Conan Packaging / Package pixelmatch-cpp17/1.0.3 (push) Successful in 19s
Conan Packaging / Package spirv-headers/1.3.341.0 (push) Failing after 13s
Conan Packaging / Package rapidhash/3.0 (push) Successful in 16s
Conan Packaging / Package stduuid/1.2.3 (push) Successful in 16s
Conan Packaging / Package unordered_dense/4.8.1 (push) Successful in 15s
Conan Packaging / Package sqlite3/3.51.2 (push) Successful in 37s
Conan Packaging / Package vulkan-headers/1.3.341.0 (push) Failing after 12s
Conan Packaging / Package eastl/3.27.01 (push) Has been skipped
Conan Packaging / Package spirv-tools/1.3.341.0 (push) Has been skipped
Conan Packaging / Package vulkan-memory-allocator/3.3.0 (push) Has been skipped
Conan Packaging / Package glslang/1.3.341.0 (push) Has been skipped
Conan Packaging / Package shaderc/2026.1 (push) Has been skipped
Conan Packaging / Package vulkan-validationlayers/1.4.341.0 (push) Has been skipped

This commit is contained in:
2026-04-12 19:15:44 +02:00
parent 43fceadaac
commit 8e515d495c
37 changed files with 1278 additions and 19 deletions

View File

@@ -0,0 +1,24 @@
cmake_minimum_required(VERSION 3.15)
project(test_package)
find_package(SPIRV-Tools REQUIRED CONFIG)
add_executable(${PROJECT_NAME}_c test_package.c)
if(TARGET SPIRV-Tools-shared)
target_link_libraries(${PROJECT_NAME}_c PRIVATE SPIRV-Tools-shared)
elseif(TARGET SPIRV-Tools-static)
target_link_libraries(${PROJECT_NAME}_c PRIVATE SPIRV-Tools-static)
else()
target_link_libraries(${PROJECT_NAME}_c PRIVATE SPIRV-Tools)
endif()
# TODO: we should call find_package(SPIRV-Tools-opt REQUIRED CONFIG), but not modeled right now
if(TARGET SPIRV-Tools-opt)
add_executable(${PROJECT_NAME}_cpp test_package.cpp)
target_link_libraries(${PROJECT_NAME}_cpp PRIVATE SPIRV-Tools-opt)
if(SPIRV-Tools_VERSION VERSION_LESS "1.3.243.0")
target_compile_features(${PROJECT_NAME}_cpp PRIVATE cxx_std_11)
else()
target_compile_features(${PROJECT_NAME}_cpp PRIVATE cxx_std_17)
endif()
endif()

View File

@@ -0,0 +1,29 @@
from conan import ConanFile
from conan.tools.build import can_run
from conan.tools.cmake import CMake, cmake_layout
import os
class TestPackageConan(ConanFile):
settings = "os", "arch", "compiler", "build_type"
generators = "CMakeToolchain", "CMakeDeps", "VirtualRunEnv"
test_type = "explicit"
def layout(self):
cmake_layout(self)
def requirements(self):
self.requires(self.tested_reference_str)
def build(self):
cmake = CMake(self)
cmake.configure()
cmake.build()
def test(self):
if can_run(self):
bin_path_c = os.path.join(self.cpp.build.bindirs[0], "test_package_c")
self.run(bin_path_c, env="conanrun")
bin_path_cpp = os.path.join(self.cpp.build.bindirs[0], "test_package_cpp")
if os.path.exists(bin_path_cpp):
self.run(bin_path_cpp, env="conanrun")

View File

@@ -0,0 +1,31 @@
#include "spirv-tools/libspirv.h"
int main(int argc, char ** argv)
{
const char input_text[] =
"OpCapability Shader\n"
"OpCapability Linkage\n"
"OpMemoryModel Logical GLSL450";
spv_text text;
spv_binary binary;
spv_context context;
context = spvContextCreate(SPV_ENV_UNIVERSAL_1_1);
binary = 0;
if( SPV_SUCCESS != spvTextToBinary(context, input_text, sizeof(input_text), &binary, 0) )
{
return 1;
}
text = 0;
if( SPV_SUCCESS != spvBinaryToText(context, binary->code, binary->wordCount, 0, &text, 0) )
{
return 1;
}
spvTextDestroy(text);
spvBinaryDestroy(binary);
spvContextDestroy(context);
return 0;
}

View File

@@ -0,0 +1,65 @@
// Copyright (c) 2016 Google Inc.
//
// 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.
// This program demonstrates basic SPIR-V module processing using
// SPIRV-Tools C++ API:
// * Assembling
// * Validating
// * Optimizing
// * Disassembling
#include <iostream>
#include <string>
#include <vector>
#include "spirv-tools/libspirv.hpp"
#include "spirv-tools/optimizer.hpp"
int main() {
const std::string source =
" OpCapability Linkage "
" OpCapability Shader "
" OpMemoryModel Logical GLSL450 "
" OpSource GLSL 450 "
" OpDecorate %spec SpecId 1 "
" %int = OpTypeInt 32 1 "
" %spec = OpSpecConstant %int 0 "
"%const = OpConstant %int 42";
spvtools::SpirvTools core(SPV_ENV_UNIVERSAL_1_3);
spvtools::Optimizer opt(SPV_ENV_UNIVERSAL_1_3);
auto print_msg_to_stderr = [](spv_message_level_t, const char*,
const spv_position_t&, const char* m) {
std::cerr << "error: " << m << std::endl;
};
core.SetMessageConsumer(print_msg_to_stderr);
opt.SetMessageConsumer(print_msg_to_stderr);
std::vector<uint32_t> spirv;
if (!core.Assemble(source, &spirv)) return 1;
if (!core.Validate(spirv)) return 1;
opt.RegisterPass(spvtools::CreateSetSpecConstantDefaultValuePass({{1, "42"}}))
.RegisterPass(spvtools::CreateFreezeSpecConstantValuePass())
.RegisterPass(spvtools::CreateUnifyConstantPass())
.RegisterPass(spvtools::CreateStripDebugInfoPass());
if (!opt.Run(spirv.data(), spirv.size(), &spirv)) return 1;
std::string disassembly;
if (!core.Disassemble(spirv, &disassembly)) return 1;
std::cout << disassembly << "\n";
return 0;
}