scopehal-apps: 0-unstable-2024-09-16 -> 0.1 (#446585)

Changed files
+127 -14
pkgs
+41 -14
pkgs/by-name/sc/scopehal-apps/package.nix
···
libsigcxx,
glew,
zstd,
-
wrapGAppsHook4,
+
wrapGAppsHook3,
+
makeBinaryWrapper,
+
writeDarwinBundle,
shaderc,
vulkan-headers,
vulkan-loader,
···
ffts,
moltenvk,
llvmPackages,
+
hidapi,
}:
-
stdenv.mkDerivation {
+
let
pname = "scopehal-apps";
-
version = "0-unstable-2024-09-16";
+
version = "0.1";
+
in
+
stdenv.mkDerivation {
+
pname = "${pname}";
+
version = "${version}";
src = fetchFromGitHub {
owner = "ngscopeclient";
-
repo = "scopehal-apps";
-
rev = "d2a1a2f17e9398a3f60c99483dd2f6dbc2e62efc";
-
hash = "sha256-FQoaTuL6mEqnH8oNXwHpDcOEAPGExqj6lhrUhZ9VAQ4=";
+
repo = "${pname}";
+
tag = "v${version}";
+
hash = "sha256-AfO6JaWA9ECMI6FkMg/LaAG4QMeZmG9VxHiw0dSJYNM=";
fetchSubmodules = true;
};
···
spirv-tools
]
++ lib.optionals stdenv.hostPlatform.isLinux [
-
wrapGAppsHook4
+
wrapGAppsHook3
+
]
+
++ lib.optionals stdenv.hostPlatform.isDarwin [
+
makeBinaryWrapper
+
writeDarwinBundle
];
buildInputs = [
···
vulkan-tools
yaml-cpp
zstd
+
hidapi
]
++ lib.optionals stdenv.hostPlatform.isLinux [
ffts
···
moltenvk
];
-
# Targets InitializeSearchPaths
-
postPatch = ''
-
substituteInPlace lib/scopehal/scopehal.cpp \
-
--replace-fail '"/share/' '"/../share/'
+
cmakeFlags = [
+
"-DNGSCOPECLIENT_VERSION=${version}"
+
];
+
+
patches = [
+
./remove-git-derived-version.patch
+
]
+
++ lib.optionals stdenv.hostPlatform.isDarwin [
+
./remove-brew-molten-vk-lookup.patch
+
];
+
+
postFixup = lib.optionalString stdenv.hostPlatform.isDarwin ''
+
mv -v $out/bin/ngscopeclient $out/bin/.ngscopeclient-unwrapped
+
makeWrapper $out/bin/.ngscopeclient-unwrapped $out/bin/ngscopeclient \
+
--prefix DYLD_LIBRARY_PATH : "${lib.makeLibraryPath ([ vulkan-loader ])}"
'';
-
cmakeFlags = lib.optionals stdenv.hostPlatform.isDarwin [
-
"-DCMAKE_INSTALL_RPATH=${lib.strings.makeLibraryPath [ vulkan-loader ]}"
-
];
+
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
+
mkdir -p $out/Applications/ngscopeclient.app/Contents/{MacOS,Resources}
+
+
install -m644 {../src/ngscopeclient/icons/macos,$out/Applications/ngscopeclient.app/Contents/Resources}/ngscopeclient.icns
+
+
write-darwin-bundle $out ngscopeclient ngscopeclient ngscopeclient
+
'';
meta = {
description = "Advanced test & measurement remote control and analysis suite";
+36
pkgs/by-name/sc/scopehal-apps/remove-brew-molten-vk-lookup.patch
···
+
diff --git a/src/ngscopeclient/CMakeLists.txt b/src/ngscopeclient/CMakeLists.txt
+
index fb6d19fa..25611981 100644
+
--- a/src/ngscopeclient/CMakeLists.txt
+
+++ b/src/ngscopeclient/CMakeLists.txt
+
@@ -249,31 +249,6 @@ if(LINUX)
+
DESTINATION share/mime/packages)
+
endif()
+
+
-if(APPLE)
+
- set(APPS "\${CMAKE_INSTALL_PREFIX}/bin/ngscopeclient")
+
- set(DIRS "\${CMAKE_INSTALL_PREFIX}/lib")
+
- set(FRAMEWORKS "\${CMAKE_INSTALL_PREFIX}/Frameworks")
+
- execute_process(
+
- COMMAND brew --prefix molten-vk
+
- RESULT_VARIABLE MOLTEN_VK_RESULT
+
- OUTPUT_VARIABLE MOLTEN_VK_OUTPUT
+
- ERROR_QUIET
+
- OUTPUT_STRIP_TRAILING_WHITESPACE
+
- )
+
- if(NOT MOLTEN_VK_RESULT EQUAL 0)
+
- message(FATAL_ERROR "failed to find Homebrew prefix for molten-vk")
+
- endif()
+
- # https://vulkan.lunarg.com/doc/view/1.3.275.0/mac/getting_started.html#application-bundle-structure-on-macos
+
- install(FILES "${CMAKE_SOURCE_DIR}/src/ngscopeclient/macos/MoltenVK_icd.json"
+
- DESTINATION bin/vulkan/icd.d/)
+
- install(FILES "${MOLTEN_VK_OUTPUT}/lib/libMoltenVK.dylib" DESTINATION lib)
+
- install(CODE "
+
- include(BundleUtilities)
+
- fixup_bundle(\"${APPS}\" \"lib/libMoltenVK.dylib\" \"${DIRS}\")
+
- include(\"${CMAKE_SOURCE_DIR}/src/ngscopeclient/macos/signing.cmake\")
+
- ")
+
-endif()
+
-
+
# ngscopeclient Windows portable zip/MSI installer build
+
if(WIXPATH AND WIN32)
+
# Run the command to get /mingw64/bin full path using where gcc
+50
pkgs/by-name/sc/scopehal-apps/remove-git-derived-version.patch
···
+
diff --git a/CMakeLists.txt b/CMakeLists.txt
+
index d362165d..7e3dfd09 100644
+
--- a/CMakeLists.txt
+
+++ b/CMakeLists.txt
+
@@ -23,45 +23,6 @@ if(DEFINED ENV{VULKAN_SDK})
+
endif()
+
endif()
+
+
-# Git is used for git-describe based version generation if we have it
+
-find_package(Git)
+
-
+
-#Set up versioning (with a dummy string for now if Git isn't present)
+
-if(Git_FOUND)
+
- execute_process(
+
- COMMAND ${GIT_EXECUTABLE} describe --always --tags
+
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+
- OUTPUT_VARIABLE NGSCOPECLIENT_VERSION
+
- OUTPUT_STRIP_TRAILING_WHITESPACE)
+
- message("Git reports scopehal-apps version ${NGSCOPECLIENT_VERSION}")
+
-
+
-
+
- execute_process(
+
- COMMAND ${GIT_EXECUTABLE} describe --always --tags --long
+
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+
- OUTPUT_VARIABLE NGSCOPECLIENT_VERSION_LONG
+
- OUTPUT_STRIP_TRAILING_WHITESPACE)
+
-
+
- # TODO: if/when we have a point release, make MSI version 10x+9
+
- # ex: 0.1.2-rc2 is 0.1.22
+
- # ex: 0.1.2 is 0.1.29
+
-
+
- # Ugly string parsing to make windows build happy
+
- # First path: release candidate tags
+
- if(NGSCOPECLIENT_VERSION_LONG MATCHES "v([0-9]*).([0-9]*)-rc([0-9])-([0-9]*)")
+
- set(MSI_VERSION "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.${CMAKE_MATCH_3}.${CMAKE_MATCH_4}")
+
-
+
- # Release tags
+
- elseif(NGSCOPECLIENT_VERSION_LONG MATCHES "v([0-9]*).([0-9]*)-([0-9]*)")
+
- set(MSI_VERSION "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.9.${CMAKE_MATCH_3}")
+
- endif()
+
-
+
-else()
+
- set(NGSCOPECLIENT_VERSION "unknown")
+
- set(MSI_VERSION "0.1")
+
- message("Git not detected, scopehal-apps version unknown")
+
-endif()
+
-
+
set(PROJECT_VERSION "${NGSCOPECLIENT_VERSION}")
+
+
include(CTest)