writers: drop writeC

This function is fundamentally broken.
Not even the ncurses example will compile.
The interface needs to be rethought for it to work (i.e. don't
unconditionally include all pc files, set include path and ld path and
rpath).
Since it is unlikely that in the current this has any user, just drop it for now.
This commit is contained in:
Jörg Thalheim 2021-08-25 09:32:10 +02:00
parent ce38fecabe
commit 982f46985e
2 changed files with 0 additions and 71 deletions

View file

@ -99,51 +99,6 @@ rec {
writeBashBin = name:
writeBash "/bin/${name}";
# writeC writes an executable c package called `name` to `destination` using `libraries`.
#
# Examples:
# writeC "hello-world-ncurses" { libraries = [ pkgs.ncurses ]; } ''
# #include <ncurses.h>
# int main() {
# initscr();
# printw("Hello World !!!");
# refresh(); endwin();
# return 0;
# }
# ''
writeC = name: {
libraries ? [],
strip ? true
}:
makeBinWriter {
compileScript = ''
PATH=${makeBinPath [
pkgs.binutils-unwrapped
pkgs.coreutils
pkgs.findutils
pkgs.gcc
pkgs.pkg-config
]}
export PKG_CONFIG_PATH=${concatMapStringsSep ":" (pkg: "${pkg}/lib/pkgconfig") libraries}
gcc \
${optionalString (libraries != [])
"$(pkg-config --cflags --libs ${
concatMapStringsSep " " (pkg: "$(find ${escapeShellArg pkg}/lib/pkgconfig -name \\*.pc)") libraries
})"
} \
-O \
-o "$out" \
-Wall \
-x c \
"$contentPath"
'';
inherit strip;
} name;
# writeCBin takes the same arguments as writeC but outputs a directory (like writeScriptBin)
writeCBin = name:
writeC "/bin/${name}";
# Like writeScript but the first line is a shebang to dash
#
# Example:

View file

@ -17,14 +17,6 @@ let
if [[ "test" == "test" ]]; then echo "success"; fi
'';
c = writeCBin "test-writers-c" { libraries = [ ]; } ''
#include <stdio.h>
int main() {
printf("success\n");
return 0;
}
'';
dash = writeDashBin "test-writers-dash-bin" ''
test '~' = '~' && echo 'success'
'';
@ -88,24 +80,6 @@ let
if [[ "test" == "test" ]]; then echo "success"; fi
'';
c = writeC "test-writers-c" { libraries = [ glib.dev ]; } ''
#include <gio/gio.h>
#include <stdio.h>
int main() {
GApplication *application = g_application_new ("hello.world", G_APPLICATION_FLAGS_NONE);
g_application_register (application, NULL, NULL);
GNotification *notification = g_notification_new ("Hello world!");
g_notification_set_body (notification, "This is an example notification.");
GIcon *icon = g_themed_icon_new ("dialog-information");
g_notification_set_icon (notification, icon);
g_object_unref (icon);
g_object_unref (notification);
g_object_unref (application);
printf("success\n");
return 0;
}
'';
dash = writeDash "test-writers-dash" ''
test '~' = '~' && echo 'success'
'';