pkgs/ultimatepp: init at 2025.1
This commit is contained in:
parent
595c2828b0
commit
73142b030f
3 changed files with 273 additions and 0 deletions
131
pkgs/by-name/ul/ultimatepp/no-build-info.patch
Normal file
131
pkgs/by-name/ul/ultimatepp/no-build-info.patch
Normal 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)
|
129
pkgs/by-name/ul/ultimatepp/package.nix
Normal file
129
pkgs/by-name/ul/ultimatepp/package.nix
Normal 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";
|
||||||
|
};
|
||||||
|
})
|
|
@ -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;
|
Loading…
Add table
Add a link
Reference in a new issue