pkgs/ultimatepp: rename to upp
This commit is contained in:
parent
35259d4999
commit
6d32f8da73
4 changed files with 10 additions and 10 deletions
|
@ -1,170 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
callPackage,
|
||||
fetchFromGitHub,
|
||||
makeWrapper,
|
||||
pkg-config,
|
||||
stdenv,
|
||||
makeDesktopItem,
|
||||
copyDesktopItems,
|
||||
|
||||
# pkg-config dependencies
|
||||
libpng,
|
||||
freetype,
|
||||
fontconfig,
|
||||
xorg,
|
||||
expat,
|
||||
gtk3,
|
||||
libnotify,
|
||||
|
||||
# other dependencies
|
||||
libclang,
|
||||
openssl,
|
||||
}:
|
||||
|
||||
let
|
||||
buildMethod = if stdenv.cc.isClang then "CLANG" else "GCC";
|
||||
uppsrcDependencies = [
|
||||
expat
|
||||
fontconfig
|
||||
freetype
|
||||
gtk3
|
||||
libnotify
|
||||
libpng
|
||||
openssl
|
||||
xorg.libX11
|
||||
xorg.libXdmcp
|
||||
xorg.libXext
|
||||
xorg.libXft
|
||||
xorg.libXinerama
|
||||
xorg.libXrender
|
||||
xorg.libxcb
|
||||
];
|
||||
in stdenv.mkDerivation (self: let
|
||||
selfBootstrap = self.overrideAttrs (selfAttrs: superAttrs: {
|
||||
passthru = superAttrs.passthru // {
|
||||
bootstrap = true;
|
||||
};
|
||||
});
|
||||
in {
|
||||
pname = "ultimatepp";
|
||||
version = "2025.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ultimatepp";
|
||||
repo = "ultimatepp";
|
||||
tag = "2025.1";
|
||||
hash = "sha256-/hsjQvc5+HxyaytZ5kryhSxbuaAx0eXuH285q7NPiiw=";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
pkg-config
|
||||
] ++ lib.optional (!self.passthru.bootstrap) copyDesktopItems;
|
||||
|
||||
buildInputs = uppsrcDependencies ++ lib.optional (!self.passthru.bootstrap) libclang;
|
||||
|
||||
patches = [
|
||||
./no-build-info.patch
|
||||
./remove-inline-from-HighlightSetup-InitOnce.patch
|
||||
];
|
||||
postPatch = ''
|
||||
patchShebangs ./configure_makefile
|
||||
echo "#define IDE_VERSION \"${self.version}\"" > uppsrc/ide/version.h
|
||||
'' + lib.optionalString (!self.passthru.bootstrap) ''
|
||||
mkdir -p .home
|
||||
export HOME=$(realpath .home)
|
||||
'';
|
||||
|
||||
NIX_LDFLAGS = [
|
||||
"-L${libclang.lib}/lib"
|
||||
"-lclang"
|
||||
];
|
||||
|
||||
NIX_CFLAGS_COMPILE = [
|
||||
"-DflagLCLANG"
|
||||
];
|
||||
|
||||
UPP_NO_BUILD_INFO = true;
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
'' + (
|
||||
# Don't build theide in bootstrap to save resources
|
||||
if self.passthru.bootstrap then ''
|
||||
make -f umkMakefile -j $NIX_BUILD_CORES "$makeFlagsArray"
|
||||
'' else ''
|
||||
${lib.getExe' selfBootstrap "umk"} uppsrc ide ${buildMethod} -rvs "-H$NIX_BUILD_CORES"
|
||||
${lib.getExe' selfBootstrap "umk"} uppsrc umk ${buildMethod} -rvs "-H$NIX_BUILD_CORES"
|
||||
'') + ''
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/bin
|
||||
'' + (if self.passthru.bootstrap then ''
|
||||
mv ./umk $out/bin/umk
|
||||
'' else ''
|
||||
mv $HOME/.cache/upp.out/umk/${buildMethod}.Main.Shared/umk $out/bin/umk
|
||||
mv $HOME/.cache/upp.out/ide/${buildMethod}.Gui.Main.Shared/ide $out/bin/theide
|
||||
|
||||
wrapProgram $out/bin/theide \
|
||||
--unset WAYLAND_DISPLAY
|
||||
|
||||
mkdir -p $out/share/icons/hicolor/scalable/apps
|
||||
cp uppsrc/ide/icon.svg $out/share/icons/hicolor/scalable/apps/ultimatepp-theide.svg
|
||||
for size in 16 32 64 128 256 512; do
|
||||
mkdir -p $out/share/icons/hicolor/''${size}x''${size}/apps
|
||||
cp uppsrc/ide/icon''${size}x''${size}.png $out/share/icons/hicolor/''${size}x''${size}/apps/ultimatepp-theide.png
|
||||
done
|
||||
'') + ''
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
desktopItems = [
|
||||
(makeDesktopItem {
|
||||
name = "ultimatepp-theide";
|
||||
exec = "theide";
|
||||
icon = "ultimatepp-theide";
|
||||
desktopName = "TheIDE";
|
||||
comment = "The Ultimate++ Framework IDE";
|
||||
categories = [ "Development" "IDE" ];
|
||||
terminal = false;
|
||||
})
|
||||
];
|
||||
|
||||
passthru = {
|
||||
bootstrap = false;
|
||||
inherit uppsrcDependencies;
|
||||
buildUppPackage = callPackage ./buildUppPackage.nix {};
|
||||
tests = lib.genAttrs [
|
||||
"AddressBookXML2"
|
||||
"Bombs"
|
||||
"Days"
|
||||
"SQLApp"
|
||||
"httpcli"
|
||||
] (examplePackageName: self.passthru.buildUppPackage {
|
||||
pname = examplePackageName;
|
||||
version = self.version;
|
||||
package = examplePackageName;
|
||||
src = self.src;
|
||||
includeUppsrcAssembly = false;
|
||||
buildInputs = self.passthru.uppsrcDependencies;
|
||||
assembly = "examples";
|
||||
extraAssemblies = [
|
||||
"uppsrc"
|
||||
];
|
||||
});
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://www.ultimatepp.org";
|
||||
description = "C++ cross-platform rapid application development framework";
|
||||
license = lib.licenses.bsd2;
|
||||
mainProgram = "umk";
|
||||
};
|
||||
})
|
Loading…
Add table
Add a link
Reference in a new issue