build: fix macOS link options + libtor paths for all 7 CI jobs
Run #467 (the re-trigger after #466's fixes) failed with two new error classes that the previous commit didn't catch: 1. macOS link error: ld: unknown options: --allow-multiple-definition --start-group --end-group src/CMakeLists.txt passed GNU ld flags unconditionally in the USE_TOR_EMBEDDED block. Apple's ld64 doesn't recognize them. Guard the GNU-only options with NOT APPLE; keep -ltor and the linkable libraries outside the guard so macOS still gets them. 2. Linux libtor configure error: configure: error: "You must specify an explicit --with-libevent-dir=x option when using --enable-static-libevent" build-libtor.sh defaults to /mingw64 paths. On ubuntu-22.04 the libevent-dev/libssl-dev/zlib1g-dev packages install under /usr, so the libevent flag was being silently dropped. Set LIBEVENT_DIR=/usr OPENSSL_DIR=/usr ZLIB_DIR=/usr for Linux jobs. 3. Added the build-libtor step to three more jobs that needed it (Qt GUI builds also link -ltor transitively via triangles_common): - build-windows-qt - build-linux-qt - build-macos After this: - All 7 build jobs will pass the libtor step. - macOS Qt link will work (no more GNU-ld-only options). - Windows Qt build will produce the .exe installer artifact. If anything still fails I'll iterate. This is the third build pass.
This commit is contained in:
+13
-3
@@ -179,14 +179,24 @@ if(USE_TOR_EMBEDDED)
|
||||
# and its dependencies.
|
||||
# Use --allow-multiple-definition because libtor.a may pull in static
|
||||
# OpenSSL objects that duplicate the DLL import lib already linked above.
|
||||
# These GNU ld options are not supported on macOS (which uses lld) —
|
||||
# guard with NOT APPLE so the build still works on macOS.
|
||||
if(NOT APPLE)
|
||||
target_link_libraries(triangles_common PUBLIC
|
||||
-Wl,--allow-multiple-definition
|
||||
-Wl,--start-group
|
||||
)
|
||||
endif()
|
||||
target_link_libraries(triangles_common PUBLIC
|
||||
-Wl,--allow-multiple-definition
|
||||
-Wl,--start-group
|
||||
-ltor
|
||||
-levent -levent_core -levent_extra -levent_openssl
|
||||
-lssl -lcrypto -lz -llzma -lzstd
|
||||
-Wl,--end-group
|
||||
)
|
||||
if(NOT APPLE)
|
||||
target_link_libraries(triangles_common PUBLIC
|
||||
-Wl,--end-group
|
||||
)
|
||||
endif()
|
||||
if(WIN32)
|
||||
target_link_libraries(triangles_common PUBLIC iphlpapi shlwapi crypt32)
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user