Merge pull request #247943 from expipiplus1/spirv-tools-static
This commit is contained in:
commit
18f8bf2150
2 changed files with 36 additions and 1 deletions
|
@ -11,6 +11,11 @@ stdenv.mkDerivation rec {
|
||||||
hash = "sha256-K7cv0mMNrXYOlJsxAPwz3rVX5FnsnBNvaU33k9hYnQc=";
|
hash = "sha256-K7cv0mMNrXYOlJsxAPwz3rVX5FnsnBNvaU33k9hYnQc=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# The cmake options are sufficient for turning on static building, but not
|
||||||
|
# for disabling shared building, just trim the shared lib from the CMake
|
||||||
|
# description
|
||||||
|
patches = lib.optional stdenv.hostPlatform.isStatic ./no-shared-libs.patch;
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake python3 ];
|
nativeBuildInputs = [ cmake python3 ];
|
||||||
|
|
||||||
cmakeFlags = [
|
cmakeFlags = [
|
||||||
|
@ -39,7 +44,7 @@ stdenv.mkDerivation rec {
|
||||||
description = "The SPIR-V Tools project provides an API and commands for processing SPIR-V modules";
|
description = "The SPIR-V Tools project provides an API and commands for processing SPIR-V modules";
|
||||||
homepage = "https://github.com/KhronosGroup/SPIRV-Tools";
|
homepage = "https://github.com/KhronosGroup/SPIRV-Tools";
|
||||||
license = licenses.asl20;
|
license = licenses.asl20;
|
||||||
platforms = platforms.unix;
|
platforms = with platforms; unix ++ windows;
|
||||||
maintainers = [ maintainers.ralith ];
|
maintainers = [ maintainers.ralith ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
30
pkgs/development/tools/spirv-tools/no-shared-libs.patch
Normal file
30
pkgs/development/tools/spirv-tools/no-shared-libs.patch
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
|
||||||
|
index acfa0c12..bf3eb686 100644
|
||||||
|
--- a/source/CMakeLists.txt
|
||||||
|
+++ b/source/CMakeLists.txt
|
||||||
|
@@ -378,16 +378,6 @@ function(spirv_tools_default_target_options target)
|
||||||
|
add_dependencies(${target} spirv-tools-build-version core_tables enum_string_mapping extinst_tables)
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
-# Always build ${SPIRV_TOOLS}-shared. This is expected distro packages, and
|
||||||
|
-# unlike the other SPIRV_TOOLS target, defaults to hidden symbol visibility.
|
||||||
|
-add_library(${SPIRV_TOOLS}-shared SHARED ${SPIRV_SOURCES})
|
||||||
|
-spirv_tools_default_target_options(${SPIRV_TOOLS}-shared)
|
||||||
|
-set_target_properties(${SPIRV_TOOLS}-shared PROPERTIES CXX_VISIBILITY_PRESET hidden)
|
||||||
|
-target_compile_definitions(${SPIRV_TOOLS}-shared
|
||||||
|
- PRIVATE SPIRV_TOOLS_IMPLEMENTATION
|
||||||
|
- PUBLIC SPIRV_TOOLS_SHAREDLIB
|
||||||
|
-)
|
||||||
|
-
|
||||||
|
if(SPIRV_TOOLS_BUILD_STATIC)
|
||||||
|
add_library(${SPIRV_TOOLS}-static STATIC ${SPIRV_SOURCES})
|
||||||
|
spirv_tools_default_target_options(${SPIRV_TOOLS}-static)
|
||||||
|
@@ -402,7 +392,7 @@ if(SPIRV_TOOLS_BUILD_STATIC)
|
||||||
|
add_library(${SPIRV_TOOLS} ALIAS ${SPIRV_TOOLS}-static)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
- set(SPIRV_TOOLS_TARGETS ${SPIRV_TOOLS}-static ${SPIRV_TOOLS}-shared)
|
||||||
|
+ set(SPIRV_TOOLS_TARGETS ${SPIRV_TOOLS}-static)
|
||||||
|
else()
|
||||||
|
add_library(${SPIRV_TOOLS} ${SPIRV_TOOLS_LIBRARY_TYPE} ${SPIRV_SOURCES})
|
||||||
|
spirv_tools_default_target_options(${SPIRV_TOOLS})
|
Loading…
Reference in a new issue