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
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:
16
glslang/all/CMakeLists.txt
Normal file
16
glslang/all/CMakeLists.txt
Normal file
@@ -0,0 +1,16 @@
|
||||
cmake_minimum_required(VERSION 3.15)
|
||||
project(cmake_wrapper)
|
||||
|
||||
# TODO:
|
||||
# - It should be find_package(SPIRV-Tools-opt REQUIRED CONFIG), but it can't be
|
||||
# modeled yet in spirv-tools recipe.
|
||||
# - Upstream CMakeLists is not very neat, and doesn't always link
|
||||
# Spirv-Tools-opt in all required targets. Keep in mind that it works thanks
|
||||
# to global injection of include dirs/interface definitions from
|
||||
# conan_basic_setup(). It won't work without patches when moving to
|
||||
# CMakeToolchain + CMakeDeps.
|
||||
if(ENABLE_OPT)
|
||||
find_package(SPIRV-Tools REQUIRED CONFIG)
|
||||
endif()
|
||||
|
||||
add_subdirectory(src)
|
||||
26
glslang/all/conandata.yml
Normal file
26
glslang/all/conandata.yml
Normal file
@@ -0,0 +1,26 @@
|
||||
# Add only the SDK release versions from https://github.com/KhronosGroup/glslang/tags for consistency
|
||||
sources:
|
||||
"1.4.341.0":
|
||||
url: "https://github.com/KhronosGroup/glslang/archive/refs/tags/vulkan-sdk-1.4.341.0.tar.gz"
|
||||
sha256: "18cdf7d40a39001dde842c6a1338b2c9321ac5e487139b9d52b4b9c666da3c86"
|
||||
"1.4.313.0":
|
||||
url: "https://github.com/KhronosGroup/glslang/archive/refs/tags/vulkan-sdk-1.4.313.0.tar.gz"
|
||||
sha256: "555ac780ccceca926fa25775834639ce6ffc744120bfb68fb8657dd4032d21ee"
|
||||
"1.3.268.0":
|
||||
url: "https://github.com/KhronosGroup/glslang/archive/refs/tags/vulkan-sdk-1.3.268.0.tar.gz"
|
||||
sha256: "8cfb4824f185bc246cd41cceedbfcdf14abd3d2fa861512baf81df8a263b9283"
|
||||
"1.3.261.1":
|
||||
url: "https://github.com/KhronosGroup/glslang/archive/refs/tags/sdk-1.3.261.1.tar.gz"
|
||||
sha256: "eb1f9c2ff0a1409151d7749fb37bc1988dc1fd908444c1e4f43d4190c90befcd"
|
||||
"1.3.243.0":
|
||||
url: "https://github.com/KhronosGroup/glslang/archive/refs/tags/sdk-1.3.243.0.tar.gz"
|
||||
sha256: "18b8f296874ac19d034bfb9060238c87b6d67a39af0dfd305d3252762c265f9f"
|
||||
"1.3.239.0":
|
||||
url: "https://github.com/KhronosGroup/glslang/archive/refs/tags/sdk-1.3.239.0.tar.gz"
|
||||
sha256: "8b040328c18399b7bbf5bef84fac3d7b7376b39ec6833b7e19b7961bf7a72017"
|
||||
"1.3.236.0":
|
||||
url: "https://github.com/KhronosGroup/glslang/archive/refs/tags/sdk-1.3.236.0.tar.gz"
|
||||
sha256: "fb6f323a36efcd98766bb72f598008f73c4c92bce69c79fc98ad2b3cdca0c263"
|
||||
"1.2.198.0":
|
||||
url: "https://github.com/KhronosGroup/glslang/archive/refs/tags/sdk-1.2.198.0.tar.gz"
|
||||
sha256: "b2a0541caf01de4fc411cbb32c805a3bd0f6578432e532c5fa6336d187a4a1b1"
|
||||
228
glslang/all/conanfile.py
Normal file
228
glslang/all/conanfile.py
Normal file
@@ -0,0 +1,228 @@
|
||||
import os
|
||||
import re
|
||||
|
||||
from conan import ConanFile
|
||||
from conan.errors import ConanInvalidConfiguration, ConanException
|
||||
from conan.tools.build import check_min_cppstd
|
||||
from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout
|
||||
from conan.tools.env import VirtualBuildEnv
|
||||
from conan.tools.files import copy, get, rmdir
|
||||
from conan.tools.scm import Version
|
||||
|
||||
required_conan_version = ">=2.1"
|
||||
|
||||
|
||||
class GlslangConan(ConanFile):
|
||||
name = "glslang"
|
||||
description = "Khronos-reference front end for GLSL/ESSL, partial front " \
|
||||
"end for HLSL, and a SPIR-V generator."
|
||||
license = "DocumentRef-LICENSE.txt:LicenseRef-glslang"
|
||||
topics = ("glsl", "hlsl", "spirv", "spir-v", "validation", "translation")
|
||||
homepage = "https://github.com/KhronosGroup/glslang"
|
||||
url = "https://github.com/conan-io/conan-center-index"
|
||||
|
||||
package_type = "library"
|
||||
settings = "os", "arch", "compiler", "build_type"
|
||||
options = {
|
||||
"shared": [True, False],
|
||||
"fPIC": [True, False],
|
||||
"build_executables": [True, False],
|
||||
"spv_remapper": [True, False],
|
||||
"hlsl": [True, False],
|
||||
"enable_optimizer": [True, False],
|
||||
}
|
||||
default_options = {
|
||||
"shared": False,
|
||||
"fPIC": True,
|
||||
"build_executables": True,
|
||||
"spv_remapper": True,
|
||||
"hlsl": True,
|
||||
"enable_optimizer": True,
|
||||
}
|
||||
|
||||
short_paths = True
|
||||
|
||||
def export_sources(self):
|
||||
copy(self, "CMakeLists.txt", self.recipe_folder, self.export_sources_folder)
|
||||
|
||||
def config_options(self):
|
||||
if self.settings.os == "Windows":
|
||||
del self.options.fPIC
|
||||
if Version(self.version) >= "1.4.341.0":
|
||||
del self.options.spv_remapper
|
||||
|
||||
def configure(self):
|
||||
if self.options.shared:
|
||||
self.options.rm_safe("fPIC")
|
||||
|
||||
def layout(self):
|
||||
cmake_layout(self, src_folder="src")
|
||||
|
||||
def requirements(self):
|
||||
if self.options.enable_optimizer:
|
||||
self.requires(f"spirv-tools/{self.version}")
|
||||
|
||||
def validate(self):
|
||||
if self.settings.compiler.get_safe("cppstd"):
|
||||
check_min_cppstd(self, 11)
|
||||
|
||||
# see https://github.com/KhronosGroup/glslang/issues/2283
|
||||
if self.options.shared:
|
||||
if self.settings.os == "Windows":
|
||||
raise ConanInvalidConfiguration(f"{self.ref} shared library build is broken on {self.settings.os}")
|
||||
|
||||
if self.options.enable_optimizer and self.dependencies["spirv-tools"].options.shared:
|
||||
raise ConanInvalidConfiguration(
|
||||
f"{self.ref} with enable_optimizer requires static spirv-tools, "
|
||||
"because SPIRV-Tools-opt is not built if shared"
|
||||
)
|
||||
|
||||
def build_requirements(self):
|
||||
if Version(self.version) >= "1.3.261":
|
||||
self.tool_requires("cmake/[>=3.17.2 <4]")
|
||||
|
||||
def source(self):
|
||||
get(self, **self.conan_data["sources"][self.version], strip_root=True)
|
||||
|
||||
def generate(self):
|
||||
venv = VirtualBuildEnv(self)
|
||||
venv.generate()
|
||||
|
||||
tc = CMakeToolchain(self)
|
||||
tc.variables["BUILD_EXTERNAL"] = False
|
||||
tc.variables["SKIP_GLSLANG_INSTALL"] = False
|
||||
tc.cache_variables["GLSLANG_ENABLE_INSTALL"] = True
|
||||
tc.variables["ENABLE_SPVREMAPPER"] = self.options.get_safe("spv_remapper", False)
|
||||
tc.variables["ENABLE_GLSLANG_BINARIES"] = self.options.build_executables
|
||||
tc.variables["ENABLE_GLSLANG_JS"] = False
|
||||
tc.variables["ENABLE_GLSLANG_WEBMIN"] = False
|
||||
tc.variables["ENABLE_GLSLANG_WEBMIN_DEVEL"] = False
|
||||
tc.variables["ENABLE_EMSCRIPTEN_SINGLE_FILE"] = False
|
||||
tc.variables["ENABLE_EMSCRIPTEN_ENVIRONMENT_NODE"] = False
|
||||
tc.variables["ENABLE_HLSL"] = self.options.hlsl
|
||||
tc.variables["ENABLE_RTTI"] = True
|
||||
tc.variables["ENABLE_OPT"] = self.options.enable_optimizer
|
||||
if self.options.enable_optimizer:
|
||||
tc.variables["spirv-tools_SOURCE_DIR"] = self.dependencies["spirv-tools"].package_folder.replace("\\", "/")
|
||||
tc.variables["ENABLE_PCH"] = False
|
||||
tc.variables["ENABLE_CTEST"] = False
|
||||
tc.variables["USE_CCACHE"] = False
|
||||
tc.variables["OVERRIDE_MSVCCRT"] = False
|
||||
tc.variables["CMAKE_MACOSX_BUNDLE"] = False
|
||||
# Generate a relocatable shared lib on Macos
|
||||
tc.cache_variables["CMAKE_POLICY_DEFAULT_CMP0042"] = "NEW"
|
||||
# glslang builds intermediate static libs, but Conan does not set -fPIC for shared builds
|
||||
tc.variables["CMAKE_POSITION_INDEPENDENT_CODE"] = self.options.get_safe("fPIC", True)
|
||||
if Version(self.version) < "1.3.224.1":
|
||||
tc.cache_variables["CMAKE_POLICY_VERSION_MINIMUM"] = "3.5" # CMake 4 support
|
||||
tc.generate()
|
||||
|
||||
deps = CMakeDeps(self)
|
||||
deps.generate()
|
||||
|
||||
def _patch_sources(self):
|
||||
for cmake_file in sorted(self.source_path.rglob("CMakeLists.txt")):
|
||||
content = cmake_file.read_text(encoding="utf8")
|
||||
if "POSITION_INDEPENDENT_CODE ON" in content:
|
||||
content = re.sub(r"set_property\(TARGET \S+ PROPERTY POSITION_INDEPENDENT_CODE ON\)\n", "", content)
|
||||
content = content.replace("POSITION_INDEPENDENT_CODE ON", "")
|
||||
cmake_file.write_text(content, encoding="utf8")
|
||||
self.output.info(f"Patched fPIC handling in {cmake_file.relative_to(self.source_path)}")
|
||||
if "POSITION_INDEPENDENT_CODE" in content:
|
||||
raise ConanException(f"POSITION_INDEPENDENT_CODE found in {cmake_file}, please update the recipe")
|
||||
|
||||
def build(self):
|
||||
self._patch_sources()
|
||||
cmake = CMake(self)
|
||||
cmake.configure(build_script_folder=os.path.join(self.source_folder, os.pardir))
|
||||
cmake.build()
|
||||
|
||||
def package(self):
|
||||
copy(self, "LICENSE.txt", self.source_folder, os.path.join(self.package_folder, "licenses"))
|
||||
cmake = CMake(self)
|
||||
cmake.install()
|
||||
rmdir(self, os.path.join(self.package_folder, "lib", "cmake"))
|
||||
rmdir(self, os.path.join(self.package_folder, "share"))
|
||||
|
||||
def package_info(self):
|
||||
self.cpp_info.set_property("cmake_file_name", "glslang")
|
||||
self.cpp_info.set_property("cmake_target_name", "glslang::_glslang-do-not-use") # because glslang-core target is glslang::glslang
|
||||
|
||||
lib_suffix = "d" if self.settings.os == "Windows" and self.settings.build_type == "Debug" else ""
|
||||
|
||||
has_machineindependent = not self.options.shared
|
||||
has_genericcodegen = not self.options.shared
|
||||
has_osdependent = not self.options.shared
|
||||
|
||||
# removed - see CHANGES.md
|
||||
has_oglcompiler = not self.options.shared and Version(self.version) <= "1.3.243"
|
||||
has_hlsl = self.options.hlsl and Version(self.version) <= "1.3.243"
|
||||
|
||||
# glslang
|
||||
self.cpp_info.components["glslang-core"].set_property("cmake_target_name", "glslang::glslang")
|
||||
self.cpp_info.components["glslang-core"].libs = [f"glslang{lib_suffix}"]
|
||||
if self.options.shared:
|
||||
self.cpp_info.components["glslang-core"].defines.append("GLSLANG_IS_SHARED_LIBRARY")
|
||||
if self.settings.os in ["Linux", "FreeBSD"]:
|
||||
self.cpp_info.components["glslang-core"].system_libs.extend(["m", "pthread"])
|
||||
if has_machineindependent:
|
||||
self.cpp_info.components["glslang-core"].requires.append("machineindependent")
|
||||
if has_genericcodegen:
|
||||
self.cpp_info.components["glslang-core"].requires.append("genericcodegen")
|
||||
if has_osdependent:
|
||||
self.cpp_info.components["glslang-core"].requires.append("osdependent")
|
||||
if has_oglcompiler:
|
||||
self.cpp_info.components["glslang-core"].requires.append("oglcompiler")
|
||||
if has_hlsl:
|
||||
self.cpp_info.components["glslang-core"].defines.append("ENABLE_HLSL")
|
||||
|
||||
if has_machineindependent:
|
||||
# MachineIndependent
|
||||
self.cpp_info.components["machineindependent"].set_property("cmake_target_name", "glslang::MachineIndependent")
|
||||
self.cpp_info.components["machineindependent"].libs = [f"MachineIndependent{lib_suffix}"]
|
||||
if has_genericcodegen:
|
||||
self.cpp_info.components["machineindependent"].requires.append("genericcodegen")
|
||||
if has_osdependent:
|
||||
self.cpp_info.components["machineindependent"].requires.append("osdependent")
|
||||
if has_oglcompiler:
|
||||
self.cpp_info.components["machineindependent"].requires.append("oglcompiler")
|
||||
|
||||
if has_genericcodegen:
|
||||
# GenericCodeGen
|
||||
self.cpp_info.components["genericcodegen"].set_property("cmake_target_name", "glslang::GenericCodeGen")
|
||||
self.cpp_info.components["genericcodegen"].libs = [f"GenericCodeGen{lib_suffix}"]
|
||||
|
||||
if has_osdependent:
|
||||
# OSDependent
|
||||
self.cpp_info.components["osdependent"].set_property("cmake_target_name", "glslang::OSDependent")
|
||||
self.cpp_info.components["osdependent"].libs = [f"OSDependent{lib_suffix}"]
|
||||
if self.settings.os in ["Linux", "FreeBSD"]:
|
||||
self.cpp_info.components["osdependent"].system_libs.append("pthread")
|
||||
|
||||
if has_oglcompiler:
|
||||
# OGLCompiler
|
||||
self.cpp_info.components["oglcompiler"].set_property("cmake_target_name", "glslang::OGLCompiler")
|
||||
self.cpp_info.components["oglcompiler"].libs = [f"OGLCompiler{lib_suffix}"]
|
||||
|
||||
# SPIRV
|
||||
self.cpp_info.components["spirv"].set_property("cmake_target_name", "glslang::SPIRV")
|
||||
self.cpp_info.components["spirv"].libs = [f"SPIRV{lib_suffix}"]
|
||||
self.cpp_info.components["spirv"].requires = ["glslang-core"]
|
||||
if self.options.enable_optimizer:
|
||||
self.cpp_info.components["spirv"].requires.append("spirv-tools::spirv-tools-opt")
|
||||
self.cpp_info.components["spirv"].defines.append("ENABLE_OPT")
|
||||
|
||||
# HLSL
|
||||
if has_hlsl:
|
||||
self.cpp_info.components["hlsl"].set_property("cmake_target_name", "glslang::HLSL")
|
||||
self.cpp_info.components["hlsl"].libs = [f"HLSL{lib_suffix}"]
|
||||
self.cpp_info.components["glslang-core"].requires.append("hlsl")
|
||||
|
||||
# SPVRemapper
|
||||
if self.options.get_safe("spv_remapper"):
|
||||
self.cpp_info.components["spvremapper"].set_property("cmake_target_name", "glslang::SPVRemapper")
|
||||
self.cpp_info.components["spvremapper"].libs = [f"SPVRemapper{lib_suffix}"]
|
||||
|
||||
if Version(self.version) >= "1.3.243":
|
||||
self.cpp_info.components["glslang-default-resource-limits"].set_property("cmake_target_name", "glslang::glslang-default-resource-limits")
|
||||
self.cpp_info.components["glslang-default-resource-limits"].libs = [f"glslang-default-resource-limits{lib_suffix}"]
|
||||
8
glslang/all/test_package/CMakeLists.txt
Normal file
8
glslang/all/test_package/CMakeLists.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
cmake_minimum_required(VERSION 3.15)
|
||||
project(test_package LANGUAGES CXX)
|
||||
|
||||
find_package(glslang REQUIRED CONFIG)
|
||||
|
||||
add_executable(${PROJECT_NAME} test_package.cpp)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE glslang::glslang)
|
||||
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_11)
|
||||
28
glslang/all/test_package/conanfile.py
Normal file
28
glslang/all/test_package/conanfile.py
Normal file
@@ -0,0 +1,28 @@
|
||||
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, run=can_run(self))
|
||||
|
||||
def build(self):
|
||||
cmake = CMake(self)
|
||||
cmake.configure()
|
||||
cmake.build()
|
||||
|
||||
def test(self):
|
||||
if can_run(self):
|
||||
bin_path = os.path.join(self.cpp.build.bindirs[0], "test_package")
|
||||
self.run(bin_path, env="conanrun")
|
||||
shader_name = os.path.join(self.source_folder, "test_package.vert")
|
||||
self.run(f"glslangValidator \"{shader_name}\"", env="conanrun")
|
||||
8
glslang/all/test_package/test_package.cpp
Normal file
8
glslang/all/test_package/test_package.cpp
Normal file
@@ -0,0 +1,8 @@
|
||||
#include <glslang/Public/ShaderLang.h>
|
||||
|
||||
int main() {
|
||||
glslang::InitializeProcess();
|
||||
glslang::FinalizeProcess();
|
||||
|
||||
return 0;
|
||||
}
|
||||
8
glslang/all/test_package/test_package.vert
Normal file
8
glslang/all/test_package/test_package.vert
Normal file
@@ -0,0 +1,8 @@
|
||||
#version 450
|
||||
#extension GL_ARB_separate_shader_objects : enable
|
||||
|
||||
layout(location = 0) in vec2 inPosition;
|
||||
|
||||
void main() {
|
||||
gl_Position = vec4(inPosition, 0.0, 1.0);
|
||||
}
|
||||
Reference in New Issue
Block a user