!lheuhImcToQZYTQTuI:nixos.org

Nix on macOS

1162 Members
β€œThere are still many issues with the Darwin platform but most of it is quite usable.” β€” http://yves.gnu-darwin.org187 Servers

Load older messages


SenderMessageTime
19 Jan 2026
@saiko:knifepoint.netKatalin πŸ”ͺ I'd have to strip down The Project 20:25:33
@samasaur:matrix.orgsamasaurthere is a cxx-interop example in nixpkgs i think?20:25:38
@samasaur:matrix.orgsamasaurif that is what you're looking for20:25:44
@samasaur:matrix.orgsamasaurthough a simplistic one20:25:47
@reckenrode:matrix.orgRandy EckenrodeSimple is fine. I just want to confirm it works.20:27:46
@saiko:knifepoint.netKatalin πŸ”ͺ actually, of course I have something 20:28:33
@saiko:knifepoint.netKatalin πŸ”ͺ hold on 20:28:37
@saiko:knifepoint.netKatalin πŸ”ͺ I literally test for this in Meson 20:28:43
@samasaur:matrix.orgsamasaur the nixpkgs one is at pkgs/development/compilers/swift/cxx-interop-test/default.nix, exposed at swift.tests.cxx-interop-test though that second fact probably isn't helpful to you anymore 20:29:13
@saiko:knifepoint.netKatalin πŸ”ͺ https://github.com/dblsaiko/meson/blob/d4d45660ca56631f7c628810e2c3579e3adf0497/mesonbuild/interpreter/interpreter.py#L1560 20:29:36
@saiko:knifepoint.netKatalin πŸ”ͺ oh that's not too useful without the actual arg list 20:30:01
@saiko:knifepoint.netKatalin πŸ”ͺ hold on 20:30:03
@saiko:knifepoint.netKatalin πŸ”ͺ swiftc -parse -emit-objc-header -emit-objc-header-path swift-export.h -parse-as-library -module-name Check -cxx-interoperability-mode=default - < /dev/null 20:31:59
@saiko:knifepoint.netKatalin πŸ”ͺ include swift-export.h in whatever C++ compiler 20:32:13
@reckenrode:matrix.orgRandy Eckenrode I’ve moved it into the package set for now, but I may want to find another place for it if we don’t want it available outside of swift.tests. 20:32:15
@saiko:knifepoint.netKatalin πŸ”ͺimage.png
Download image.png
20:33:54
@saiko:knifepoint.netKatalin πŸ”ͺ here, with normal clang, I get something like this 20:33:55
@reckenrode:matrix.orgRandy Eckenrode
$ nix build -f . swiftPackages.cxx-interop-test -L
swift-cxx-interop-test> Running phase: unpackPhase
swift-cxx-interop-test> unpacking source archive /nix/store/m30j9w6nrkaddslrfwyhbkq28jcs2bqw-src
swift-cxx-interop-test> source root is src
swift-cxx-interop-test> Unpacking SwiftPM dependencies
swift-cxx-interop-test> Running phase: patchPhase
swift-cxx-interop-test> Running phase: updateAutotoolsGnuConfigScriptsPhase
swift-cxx-interop-test> Running phase: configurePhase
swift-cxx-interop-test> no configure script, doing nothing
swift-cxx-interop-test> Running phase: buildPhase
swift-cxx-interop-test> SwiftPM flags: -j 16 -c release -Xswiftc -module-cache-path -Xswiftc /nix/var/nix/builds/nix-build-swift-cxx-interop-test.drv-0/b/module-cache -Xswiftc -I -Xswiftc /nix/store/9gz91ivdymjlk4dhnfs2wri3h3z7y3vv-swift-testing-6.2.3-include/lib/swift/macosx/testing -Xswiftc -I -Xswiftc /nix/store/y3w9x0ywz7d6ya9d95i9i5apbwq6dwmf-swift-stdlib-6.2.3-dev/lib/swift/macosx -Xswiftc -I -Xswiftc /nix/store/9gz91ivdymjlk4dhnfs2wri3h3z7y3vv-swift-testing-6.2.3-include/lib/swift/macosx/testing -Xswiftc -I -Xswiftc /nix/store/y3w9x0ywz7d6ya9d95i9i5apbwq6dwmf-swift-stdlib-6.2.3-dev/lib/swift/macosx
swift-cxx-interop-test> warning: /var/empty/Library/org.swift.swiftpm/configuration is not accessible or not writable, disabling user-level cache features.
swift-cxx-interop-test> warning: /var/empty/Library/org.swift.swiftpm/security is not accessible or not writable, disabling user-level cache features.
swift-cxx-interop-test> warning: 'src': Warning: supplying the --target arm64-apple-macosx14.0 != arm64-apple-darwin argument to a nix-wrapped compiler may not work correctly - cc-wrapper is currently not designed with multi-target compilers in mind. You may want to use an un-wrapped compiler instead.
swift-cxx-interop-test> Building for production...
swift-cxx-interop-test> [0/4] Write sources
swift-cxx-interop-test> [1/4] Write swift-version-2FDF012AFD0A72F3.txt
swift-cxx-interop-test> [3/5] Compiling CxxInteropTest main.swift
swift-cxx-interop-test> [3/5] Write Objects.LinkFileList
swift-cxx-interop-test> Warning: supplying the --target arm64-apple-macosx10.13 != arm64-apple-darwin argument to a nix-wrapped compiler may not work correctly - cc-wrapper is currently not designed with multi-target compilers in mind. You may want to use an un-wrapped compiler instead.
swift-cxx-interop-test> clang: warning: overriding '-mmacos-version-min=14.0' option with '--target=arm64-apple-macosx10.13' [-Woverriding-option]
swift-cxx-interop-test> [4/5] Linking CxxInteropTest
swift-cxx-interop-test> Build complete! (2.32s)
swift-cxx-interop-test> Running phase: installPhase
swift-cxx-interop-test> warning: /var/empty/Library/org.swift.swiftpm/configuration is not accessible or not writable, disabling user-level cache features.
swift-cxx-interop-test> warning: /var/empty/Library/org.swift.swiftpm/security is not accessible or not writable, disabling user-level cache features.
swift-cxx-interop-test> warning: 'src': Warning: supplying the --target arm64-apple-macosx14.0 != arm64-apple-darwin argument to a nix-wrapped compiler may not work correctly - cc-wrapper is currently not designed with multi-target compilers in mind. You may want to use an un-wrapped compiler instead.
swift-cxx-interop-test> warning: /var/empty/Library/org.swift.swiftpm/configuration is not accessible or not writable, disabling user-level cache features.
swift-cxx-interop-test> warning: /var/empty/Library/org.swift.swiftpm/security is not accessible or not writable, disabling user-level cache features.
swift-cxx-interop-test> Running phase: fixupPhase
swift-cxx-interop-test> checking for references to /nix/var/nix/builds/nix-build-swift-cxx-interop-test.drv-0/b/ in /nix/store/jrw7fkjigg64ika9w5dxv2w1m3b4gms9-swift-cxx-interop-test...
swift-cxx-interop-test> patching script interpreter paths in /nix/store/jrw7fkjigg64ika9w5dxv2w1m3b4gms9-swift-cxx-interop-test
swift-cxx-interop-test> stripping (with command strip and flags -S) in  /nix/store/jrw7fkjigg64ika9w5dxv2w1m3b4gms9-swift-cxx-interop-test/bin
swift-cxx-interop-test> Running phase: installCheckPhase
swift-cxx-interop-test> Hello, world!
20:36:04
@reckenrode:matrix.orgRandy Eckenrode I did make one tweak to add a product to Package.swift. The new SwiftPM hook supports installing products automatically if they’re defined in Package.swift. 20:36:36
@samasaur:matrix.orgsamasauroh that's really nice20:36:46
@reckenrode:matrix.orgRandy Eckenrode
$ nix develop -f . swiftPackages.cxx-interop-test -L
$ command -v clang
/nix/store/3fbjimjwwxk682a9gkbr2nss0yf232mf-clang-wrapper-21.1.8/bin/clang
20:37:13
@reckenrode:matrix.orgRandy Eckenrode Though I’m not sure that Swift 6.2 is invoking clang for its interop support. 20:37:27
@saiko:knifepoint.netKatalin πŸ”ͺ perhaps it needs additional include directories, or swiftpm does use swift clang inherently 20:37:29
@reckenrode:matrix.orgRandy Eckenrode It seems to be fine when invoked by SwiftPM but not when called directly. I can use the Xcode clang just fine with that header. 20:44:47
@saiko:knifepoint.netKatalin πŸ”ͺ yeah, that sounds like the same situation then 20:45:49
@saiko:knifepoint.netKatalin πŸ”ͺ iirc that generated header has a bunch of conditional includes at the top with has_include, and these errors look like missing defines, so maybe if you give it just the right include paths it'll get further, but I'd have to start digging 20:46:51
@reckenrode:matrix.orgRandy Eckenrode It needs this header: swiftToCxx/_SwiftCxxInteroperability.h . 20:48:15
@reckenrode:matrix.orgRandy EckenrodeThat has the defines.20:48:23
@reckenrode:matrix.orgRandy Eckenrode The Xcode toolchain ships it at /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/swiftToCxx/_SwiftCxxInteroperability.h. 20:49:32
@reckenrode:matrix.orgRandy EckenrodeI can put it in stdlib-dev/include, which should get picked up automatically by the wrapper.20:51:21

Show newer messages


Back to Room ListRoom Version: 6