diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..2b1a763 --- /dev/null +++ b/default.nix @@ -0,0 +1,32 @@ +{ + nixPkgsVersion ? "3e52e76b70d5508f3cec70b882a29199f4d1ee85" +}: +let + + getNixPkgs = args: import (builtins.fetchGit { + name = "nixpkg-serene-${nixPkgsVersion}"; + url = "https://github.com/nixos/nixpkgs/"; + # Commit hash for nixos-unstable as of 2018-09-12 + # `git ls-remote https://github.com/nixos/nixpkgs nixos-unstable` + ref = "refs/heads/nixos-unstable"; + rev = nixPkgsVersion; + }) args; + + nixpkgs = getNixPkgs {}; + system = import ./system.nix { pkgs = nixpkgs; }; + staticMuslPkgs = getNixPkgs system; + llvm = staticMuslPkgs.llvmPackages_16.override { stdenv = staticMuslPkgs.llvmPackages_16.libcxxClang; }; + SereneOverlay = final: prev: + { + sereneToolchain = llvm.libcxxClang; + }; + + createPkgSet = _: # It has to be the nixpkgs instance + getNixPkgs (system // { overlays = [ SereneOverlay ]; }); + #pkgs = getNixPkgs nixVersion (system // { overlays = [ libcxxClangOverlay ]; }); +in { + inherit SereneOverlay createPkgSet; + # setupToolchain = nixpkgs: + + #pkgs.stdenv.override { stdenv = llvm.libcxxClang; }; +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..10a3cdf --- /dev/null +++ b/flake.nix @@ -0,0 +1,13 @@ +{ + description = "Serene Toolchain"; + + + outputs = inputs: + let + toolchain = import ./.; + in + { + inherit toolchain; + }; + +} diff --git a/packages/cmake/conanfile.py b/packages/cmake/conanfile.py index 5fe6ec5..5def365 100644 --- a/packages/cmake/conanfile.py +++ b/packages/cmake/conanfile.py @@ -52,7 +52,8 @@ class Cmake(ConanFile): cmake = CMake(self) flags = with_static_flags( { - "CMAKE_USE_OPENSSL": "OFF", + "CMAKE_USE_OPENSSL": "ON", + "OPENSSL_USE_STATIC_LIBS": "ON", "BUILD_TESTING": "OFF", } ) diff --git a/system.nix b/system.nix new file mode 100644 index 0000000..45a7f1d --- /dev/null +++ b/system.nix @@ -0,0 +1,21 @@ +{ pkgs }: +let + parsedSystem = builtins.split "-" builtins.currentSystem; + arch = builtins.head (parsedSystem); + os = builtins.elemAt (parsedSystem) 2; + + system = pkgs.lib.systems.elaborate { + system = builtins.currentSystem; + config = "${arch}-unknown-linux-musl"; + isStatic = true; + useLLVM = true; + linker = "lld"; + }; + + args = if os != "linux" then {} + else { + localSystem = system; + crossSystem = system; + }; + +in args diff --git a/tests/1/.ninja_deps b/tests/1/.ninja_deps deleted file mode 100644 index e5675ec..0000000 Binary files a/tests/1/.ninja_deps and /dev/null differ diff --git a/tests/1/.ninja_log b/tests/1/.ninja_log deleted file mode 100644 index 52768fa..0000000 --- a/tests/1/.ninja_log +++ /dev/null @@ -1,3 +0,0 @@ -# ninja log v5 -0 0 1683492538462869278 main 6157dd645b7b0062 -0 0 1683492538462869278 main-static 92a52c8bbfaceaad diff --git a/tests/1/build.ninja b/tests/1/build.ninja deleted file mode 100644 index e236e7e..0000000 --- a/tests/1/build.ninja +++ /dev/null @@ -1,10 +0,0 @@ -cxxflags = -Wall -fuse-ld=lld --sysroot /sysroot - -rule cc - command = clang++ $cxxflags -c $in -o $out - -rule static-cc - command = clang++ $cxxflags -c $in -o $out - -build main: cc main.cpp -build main-static: static-cc main.cpp diff --git a/tests/1/main.cpp b/tests/1/main.cpp deleted file mode 100644 index b441156..0000000 --- a/tests/1/main.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include -#include -#include -#include - -int main() { - auto a = std::make_unique("boooo"); - printf("test_1\n"); - std::cout << *a << "\n"; - return 0; -}