pkgs/ultimatepp: init at 2025.1

This commit is contained in:
Wroclaw 2025-05-18 20:36:55 +02:00
parent 595c2828b0
commit 73142b030f
3 changed files with 273 additions and 0 deletions

View file

@ -0,0 +1,131 @@
diff --git a b
index a3e9af6..0ff3dd8 100644
--- a/Makefile
+++ b/Makefile
@@ -100,8 +100,14 @@ all: prepare $(OutFile)
.PHONY: build_info
build_info:
- (date '+#define bmYEAR %y%n#define bmMONTH %m%n#define bmDAY %d%n#define bmHOUR %H%n#define bmMINUTE %M%n#define bmSECOND %S%n#define bmTIME Time( %y, %m, %d, %H, %M, %S )' | sed 's| 0\([[:digit:]]\)| \1|g' && \
- echo '#define bmMACHINE "'`hostname`'"' && \
- echo '#define bmUSER "'`whoami`'"') > "$(UPPOUT)/build_info.h"
+ (echo '#define bmYEAR 1970' && \
+ echo '#define bmMONTH 1' && \
+ echo '#define bmDAY 1' && \
+ echo '#define bmHOUR 0' && \
+ echo '#define bmMINUTE 0' && \
+ echo '#define bmSECOND 1' && \
+ echo '#define bmTIME Time(1970, 1, 1, 0, 0, 1)' && \
+ echo '#define bmMACHINE ""' && \
+ echo '#define bmUSER ""') > "$(UPPOUT)/build_info.h"
.PHONY: prepare
prepare: \
index a3e9af6..0ff3dd8 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -100,8 +100,14 @@ all: prepare $(OutFile)
.PHONY: build_info
build_info:
- (date '+#define bmYEAR %y%n#define bmMONTH %m%n#define bmDAY %d%n#define bmHOUR %H%n#define bmMINUTE %M%n#define bmSECOND %S%n#define bmTIME Time( %y, %m, %d, %H, %M, %S )' | sed 's| 0\([[:digit:]]\)| \1|g' && \
- echo '#define bmMACHINE "'`hostname`'"' && \
- echo '#define bmUSER "'`whoami`'"') > "$(UPPOUT)/build_info.h"
+ (echo '#define bmYEAR 1970' && \
+ echo '#define bmMONTH 1' && \
+ echo '#define bmDAY 1' && \
+ echo '#define bmHOUR 0' && \
+ echo '#define bmMINUTE 0' && \
+ echo '#define bmSECOND 1' && \
+ echo '#define bmTIME Time(1970, 1, 1, 0, 0, 1)' && \
+ echo '#define bmMACHINE ""' && \
+ echo '#define bmUSER ""') > "$(UPPOUT)/build_info.h"
.PHONY: prepare
prepare: \
--- a/umkMakefile
+++ b/umkMakefile
@@ -52,8 +52,14 @@ all: prepare $(OutFile)
.PHONY: build_info
build_info:
- (date '+#define bmYEAR %y%n#define bmMONTH %m%n#define bmDAY %d%n#define bmHOUR %H%n#define bmMINUTE %M%n#define bmSECOND %S%n#define bmTIME Time( %y, %m, %d, %H, %M, %S )' | sed 's| 0\([[:digit:]]\)| \1|g' && \
- echo '#define bmMACHINE "'`hostname`'"' && \
- echo '#define bmUSER "'`whoami`'"') > "$(UPPOUT)/build_info.h"
+ (echo '#define bmYEAR 1970' && \
+ echo '#define bmMONTH 1' && \
+ echo '#define bmDAY 1' && \
+ echo '#define bmHOUR 0' && \
+ echo '#define bmMINUTE 0' && \
+ echo '#define bmSECOND 1' && \
+ echo '#define bmTIME Time(1970, 1, 1, 0, 0, 1)' && \
+ echo '#define bmMACHINE ""' && \
+ echo '#define bmUSER ""') > "$(UPPOUT)/build_info.h"
.PHONY: prepare
prepare: \
--- a/umkMakefile.in
+++ b/umkMakefile.in
@@ -52,8 +52,14 @@ all: prepare $(OutFile)
.PHONY: build_info
build_info:
- (date '+#define bmYEAR %y%n#define bmMONTH %m%n#define bmDAY %d%n#define bmHOUR %H%n#define bmMINUTE %M%n#define bmSECOND %S%n#define bmTIME Time( %y, %m, %d, %H, %M, %S )' | sed 's| 0\([[:digit:]]\)| \1|g' && \
- echo '#define bmMACHINE "'`hostname`'"' && \
- echo '#define bmUSER "'`whoami`'"') > "$(UPPOUT)/build_info.h"
+ (echo '#define bmYEAR 1970' && \
+ echo '#define bmMONTH 1' && \
+ echo '#define bmDAY 1' && \
+ echo '#define bmHOUR 0' && \
+ echo '#define bmMINUTE 0' && \
+ echo '#define bmSECOND 1' && \
+ echo '#define bmTIME Time(1970, 1, 1, 0, 0, 1)' && \
+ echo '#define bmMACHINE ""' && \
+ echo '#define bmUSER ""') > "$(UPPOUT)/build_info.h"
.PHONY: prepare
prepare: \
--- a/uppsrc/ide/Builders/CppBuilder.cpp
+++ b/uppsrc/ide/Builders/CppBuilder.cpp
@@ -580,19 +580,32 @@ void CppBuilder::SaveBuildInfo(const String& package)
RealizePath(path);
FileOut info(path);
Time t = GetSysTime();
- info << "#define bmYEAR " << (int)t.year << "\r\n";
- info << "#define bmMONTH " << (int)t.month << "\r\n";
- info << "#define bmDAY " << (int)t.day << "\r\n";
- info << "#define bmHOUR " << (int)t.hour << "\r\n";
- info << "#define bmMINUTE " << (int)t.minute << "\r\n";
- info << "#define bmSECOND " << (int)t.second << "\r\n";
- info << Format("#define bmTIME Time(%d, %d, %d, %d, %d, %d)\r\n",
- (int)t.year, (int)t.month, (int)t.day, (int)t.hour, (int)t.minute, (int)t.second);
- info << "#define bmMACHINE " << AsCString(GetComputerName()) << "\r\n";
- info << "#define bmUSER " << AsCString(GetUserName()) << "\r\n";
-
- if(package == mainpackage)
- info << Join(RepoInfo(package), "\r\n");
+ char* no_build_info = getenv("NO_BUILD_INFO");
+ if((no_build_info != NULL) && strcmp(no_build_info, "1")) {
+ info << "#define bmYEAR " << (int)t.year << "\r\n";
+ info << "#define bmMONTH " << (int)t.month << "\r\n";
+ info << "#define bmDAY " << (int)t.day << "\r\n";
+ info << "#define bmHOUR " << (int)t.hour << "\r\n";
+ info << "#define bmMINUTE " << (int)t.minute << "\r\n";
+ info << "#define bmSECOND " << (int)t.second << "\r\n";
+ info << Format("#define bmTIME Time(%d, %d, %d, %d, %d, %d)\r\n",
+ (int)t.year, (int)t.month, (int)t.day, (int)t.hour, (int)t.minute, (int)t.second);
+ info << "#define bmMACHINE " << AsCString(GetComputerName()) << "\r\n";
+ info << "#define bmUSER " << AsCString(GetUserName()) << "\r\n";
+
+ if(package == mainpackage)
+ info << Join(RepoInfo(package), "\r\n");
+ } else {
+ info << "#define bmYEAR 1970\r\n";
+ info << "#define bmMONTH 1\r\n";
+ info << "#define bmDAY 1\r\n";
+ info << "#define bmHOUR 0\r\n";
+ info << "#define bmMINUTE 0\r\n";
+ info << "#define bmSECOND 1\r\n";
+ info << "#define bmTIME Time(1970, 1, 1, 0, 0, 1)\r\n";
+ info << "#define bmMACHINE \"\"\r\n";
+ info << "#define bmUSER \"\"\r\n";
+ }
}
String CppBuilder::DefinesTargetTime(const char *sep, const String& package, const Package& pkg)

View file

@ -0,0 +1,129 @@
{
lib,
fetchFromGitHub,
makeWrapper,
pkg-config,
stdenv,
# pkg-config dependencies
libpng,
freetype,
fontconfig,
xorg,
expat,
gtk3,
libnotify,
# other dependencies
libclang,
openssl,
}:
let
buildMethod = if stdenv.cc.isClang then "CLANG" else "GCC";
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
];
buildInputs = [
# in the same order as in the Makefile
libpng
freetype
fontconfig
xorg.libX11
xorg.libxcb
expat
xorg.libXinerama
xorg.libXrender
xorg.libXft
xorg.libXdmcp
xorg.libXext
gtk3
libnotify
# not in the Makefile
openssl
] ++ 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
${lib.getExe' selfBootstrap "umk"} uppsrc umk ${buildMethod} -rvs
'') + ''
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
'') + ''
runHook postInstall
'';
passthru = {
bootstrap = false;
};
meta = {
homepage = "https://www.ultimatepp.org";
description = "C++ cross-platform rapid application development framework";
license = lib.licenses.bsd2;
mainProgram = "umk";
};
})

View file

@ -0,0 +1,13 @@
diff --git a b
index eca1b54..dede1d5 100644
--- a/uppsrc/CodeEditor/Style.cpp
+++ b/uppsrc/CodeEditor/Style.cpp
@@ -38,7 +38,7 @@ void HighlightSetup::DefaultHlStyles()
WhiteTheme();
}
-inline void HighlightSetup::InitOnce()
+void HighlightSetup::InitOnce()
{
ONCELOCK {
static bool initialised;