mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-18 19:51:17 +00:00
commit
eafa8276d5
|
@ -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:
|
||||
|
|
|
@ -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'
|
||||
'';
|
||||
|
|
Loading…
Reference in a new issue