diff --git a/.github/workflows/notes.md b/.github/workflows/notes.md index 3bd6c739a5..86f9e8e618 100644 --- a/.github/workflows/notes.md +++ b/.github/workflows/notes.md @@ -22,7 +22,7 @@ ${NVIM_VERSION} 1. Download **nvim-macos.tar.gz** 2. Extract: `tar xzvf nvim-macos.tar.gz` -3. Run `./nvim-osx64/bin/nvim` +3. Run `./nvim-macos/bin/nvim` ### Linux (x64) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 20e2302205..2a4b93981b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -78,7 +78,7 @@ jobs: retention-days: 1 macOS: - runs-on: macos-10.15 + runs-on: macos-11 steps: - uses: actions/checkout@v2 with: @@ -91,28 +91,37 @@ jobs: run: printf 'NVIM_BUILD_TYPE=Release\n' >> $GITHUB_ENV - if: github.event_name == 'schedule' || (github.event_name == 'workflow_dispatch' && github.event.inputs.tag_name == 'nightly') run: printf 'NVIM_BUILD_TYPE=RelWithDebInfo\n' >> $GITHUB_ENV + - name: Provision universal `libintl` + run: | + GETTEXT_PREFIX="$(brew --prefix gettext)" + printf 'GETTEXT_PREFIX=%s\n' "$GETTEXT_PREFIX" >> $GITHUB_ENV + bottle_tag="arm64_big_sur" + brew fetch --bottle-tag="$bottle_tag" gettext + cd "$(mktemp -d)" + tar xf "$(brew --cache)"/**/*gettext*${bottle_tag}*.tar.gz + lipo gettext/*/lib/libintl.a "${GETTEXT_PREFIX}/lib/libintl.a" -create -output libintl.a + mv -f libintl.a /usr/local/lib/ + - name: Ensure static linkage to `libintl` + run: | + # We're about to mangle `gettext`, so let's remove any potentially broken + # installs (e.g. curl, git) as those could interfere with our build. + brew uninstall $(brew uses --installed --recursive gettext) + brew unlink gettext + ln -sf "$(brew --prefix)/opt/$(readlink "${GETTEXT_PREFIX}")/bin"/* /usr/local/bin/ + rm -f "$GETTEXT_PREFIX" - name: Build release run: | - make CMAKE_BUILD_TYPE=${NVIM_BUILD_TYPE} CMAKE_EXTRA_FLAGS="-DCMAKE_INSTALL_PREFIX:PATH= -DCMAKE_OSX_DEPLOYMENT_TARGET=10.11" - make DESTDIR="$GITHUB_WORKSPACE/build/release/nvim-osx64" install + export MACOSX_DEPLOYMENT_TARGET="$(sw_vers -productVersion | cut -f1 -d.)" + OSX_FLAGS="-DCMAKE_OSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} -DCMAKE_OSX_ARCHITECTURES=arm64\;x86_64" + make CMAKE_BUILD_TYPE=${NVIM_BUILD_TYPE} \ + CMAKE_EXTRA_FLAGS="-DCMAKE_INSTALL_PREFIX:PATH= $OSX_FLAGS" \ + DEPS_CMAKE_FLAGS="$OSX_FLAGS" + make DESTDIR="$GITHUB_WORKSPACE/build/release/nvim-macos" install - name: Create package run: | cd "$GITHUB_WORKSPACE/build/release" - mkdir -p nvim-osx64/libs - libs=($(otool -L nvim-osx64/bin/nvim | sed 1d | sed -E -e 's|^[[:space:]]*||' -e 's| .*||')) - echo "libs:" - for lib in "${libs[@]}"; do - if echo "$lib" | grep -q -E 'libSystem|CoreServices' 2>/dev/null; then - echo " [skipped] $lib" - else - echo " $lib" - relname="libs/${lib##*/}" - cp -L "$lib" "nvim-osx64/$relname" - install_name_tool -change "$lib" "@executable_path/../$relname" nvim-osx64/bin/nvim - fi - done - tar cfz nvim-macos.tar.gz nvim-osx64 - - uses: actions/upload-artifact@v2 + tar cfz nvim-macos.tar.gz nvim-macos + - uses: actions/upload-artifact@v3 with: name: nvim-macos path: build/release/nvim-macos.tar.gz diff --git a/CMakeLists.txt b/CMakeLists.txt index 4f29a2f64f..1919dde97a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -71,13 +71,8 @@ else() endif() endif() -if(CMAKE_CROSSCOMPILING AND NOT UNIX) - list(INSERT CMAKE_FIND_ROOT_PATH 0 ${DEPS_PREFIX}) - list(INSERT CMAKE_PREFIX_PATH 0 ${DEPS_PREFIX}/../host/bin) -else() - list(INSERT CMAKE_PREFIX_PATH 0 ${DEPS_PREFIX}) - set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:${DEPS_PREFIX}/lib/pkgconfig") -endif() +list(INSERT CMAKE_PREFIX_PATH 0 ${DEPS_PREFIX}) +set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:${DEPS_PREFIX}/lib/pkgconfig") # used for check_c_compiler_flag include(CheckCCompilerFlag) diff --git a/third-party/CMakeLists.txt b/third-party/CMakeLists.txt index 439c6167f8..f5ad49b8a7 100644 --- a/third-party/CMakeLists.txt +++ b/third-party/CMakeLists.txt @@ -124,24 +124,25 @@ if(CMAKE_OSX_SYSROOT) endif() endif() -# Cross compiling: use these for dependencies built for the -# HOST system, when not crosscompiling these should be the -# same as DEPS_*. Except when targeting Unix in which case -# want all the dependencies to use the same compiler. -if(CMAKE_CROSSCOMPILING AND NOT UNIX) - set(HOSTDEPS_INSTALL_DIR "${CMAKE_BINARY_DIR}/host") - set(HOSTDEPS_BIN_DIR "${HOSTDEPS_INSTALL_DIR}/bin") - set(HOSTDEPS_LIB_DIR "${HOSTDEPS_INSTALL_DIR}/lib") - set(HOSTDEPS_C_COMPILER "${HOST_C_COMPILER}") - set(HOSTDEPS_CXX_COMPILER "${HOST_CXX_COMPILER}") -else() - set(HOSTDEPS_INSTALL_DIR "${DEPS_INSTALL_DIR}") - set(HOSTDEPS_BIN_DIR "${DEPS_BIN_DIR}") - set(HOSTDEPS_LIB_DIR "${DEPS_LIB_DIR}") - set(HOSTDEPS_C_COMPILER "${DEPS_C_COMPILER}") - set(HOSTDEPS_CXX_COMPILER "${DEPS_CXX_COMPILER}") +if(CMAKE_OSX_ARCHITECTURES) + string(REPLACE ";" "|" CMAKE_OSX_ARCHITECTURES_ALT_SEP "${CMAKE_OSX_ARCHITECTURES}") + # The LuaJIT build does not like being passed multiple `-arch` flags + # so we handle a universal build the old-fashioned way. + set(LUAJIT_C_COMPILER "${DEPS_C_COMPILER}") + foreach(ARCH IN LISTS CMAKE_OSX_ARCHITECTURES) + set(DEPS_C_COMPILER "${DEPS_C_COMPILER} -arch ${ARCH}") + if(DEPS_CXX_COMPILER) + set(DEPS_CXX_COMPILER "${DEPS_CXX_COMPILER} -arch ${ARCH}") + endif() + endforeach() endif() +set(HOSTDEPS_INSTALL_DIR "${DEPS_INSTALL_DIR}") +set(HOSTDEPS_BIN_DIR "${DEPS_BIN_DIR}") +set(HOSTDEPS_LIB_DIR "${DEPS_LIB_DIR}") +set(HOSTDEPS_C_COMPILER "${DEPS_C_COMPILER}") +set(HOSTDEPS_CXX_COMPILER "${DEPS_CXX_COMPILER}") + include(ExternalProject) set(LIBUV_URL https://github.com/libuv/libuv/archive/v1.44.1.tar.gz) @@ -233,7 +234,7 @@ if(USE_BUNDLED_LUAJIT) include(BuildLuajit) endif() -if(USE_BUNDLED_LUA AND NOT CMAKE_CROSSCOMPILING) +if(USE_BUNDLED_LUA) include(BuildLua) endif() diff --git a/third-party/cmake/BuildLibuv.cmake b/third-party/cmake/BuildLibuv.cmake index 42650308a8..ba5de38714 100644 --- a/third-party/cmake/BuildLibuv.cmake +++ b/third-party/cmake/BuildLibuv.cmake @@ -45,17 +45,6 @@ if(UNIX) CONFIGURE_COMMAND ${UNIX_CFGCMD} MAKE=${MAKE_PRG} INSTALL_COMMAND ${MAKE_PRG} V=1 install) -elseif(MINGW AND CMAKE_CROSSCOMPILING) - # Build libuv for the host - BuildLibuv(TARGET libuv_host - CONFIGURE_COMMAND sh ${DEPS_BUILD_DIR}/src/libuv_host/autogen.sh && ${DEPS_BUILD_DIR}/src/libuv_host/configure --with-pic --disable-shared --prefix=${HOSTDEPS_INSTALL_DIR} CC=${HOST_C_COMPILER} - INSTALL_COMMAND ${MAKE_PRG} V=1 install) - - # Build libuv for the target - BuildLibuv( - CONFIGURE_COMMAND ${UNIX_CFGCMD} --host=${CROSS_TARGET} - INSTALL_COMMAND ${MAKE_PRG} V=1 install) - elseif(WIN32) set(UV_OUTPUT_DIR ${DEPS_BUILD_DIR}/src/libuv/${CMAKE_BUILD_TYPE}) diff --git a/third-party/cmake/BuildLuajit.cmake b/third-party/cmake/BuildLuajit.cmake index e02d7fe609..c8d5b39398 100644 --- a/third-party/cmake/BuildLuajit.cmake +++ b/third-party/cmake/BuildLuajit.cmake @@ -5,7 +5,7 @@ function(BuildLuajit) cmake_parse_arguments(_luajit "" "TARGET" - "CONFIGURE_COMMAND;BUILD_COMMAND;INSTALL_COMMAND" + "CONFIGURE_COMMAND;BUILD_COMMAND;INSTALL_COMMAND;DEPENDS" ${ARGN}) if(NOT _luajit_CONFIGURE_COMMAND AND NOT _luajit_BUILD_COMMAND AND NOT _luajit_INSTALL_COMMAND) @@ -30,13 +30,14 @@ function(BuildLuajit) CONFIGURE_COMMAND "${_luajit_CONFIGURE_COMMAND}" BUILD_IN_SOURCE 1 BUILD_COMMAND "${_luajit_BUILD_COMMAND}" - INSTALL_COMMAND "${_luajit_INSTALL_COMMAND}") + INSTALL_COMMAND "${_luajit_INSTALL_COMMAND}" + DEPENDS "${_luajit_DEPENDS}") # Create symlink for development version manually. if(UNIX) add_custom_command( TARGET ${_luajit_TARGET} - COMMAND ${CMAKE_COMMAND} -E create_symlink luajit-2.1.0-beta3 ${DEPS_BIN_DIR}/luajit) + COMMAND ${CMAKE_COMMAND} -E create_symlink luajit-2.1.0-beta3 ${DEPS_BIN_DIR}/${_luajit_TARGET}) endif() endfunction() @@ -51,53 +52,64 @@ if(CMAKE_SYSTEM_NAME MATCHES "OpenBSD") else() set(AMD64_ABI "") endif() -set(INSTALLCMD_UNIX ${MAKE_PRG} CFLAGS=-fPIC - CFLAGS+=-DLUA_USE_APICHECK - CFLAGS+=-funwind-tables - ${NO_STACK_CHECK} - ${AMD64_ABI} - CCDEBUG+=-g - Q= - install) +set(BUILDCMD_UNIX ${MAKE_PRG} CFLAGS=-fPIC + CFLAGS+=-DLUA_USE_APICHECK + CFLAGS+=-funwind-tables + ${NO_STACK_CHECK} + ${AMD64_ABI} + CCDEBUG+=-g + Q=) -if(UNIX) - if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") - if(CMAKE_OSX_DEPLOYMENT_TARGET) - set(DEPLOYMENT_TARGET "MACOSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}") - else() - # Use the same target as our nightly builds - set(DEPLOYMENT_TARGET "MACOSX_DEPLOYMENT_TARGET=10.11") - endif() +if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") + if(CMAKE_OSX_DEPLOYMENT_TARGET) + set(DEPLOYMENT_TARGET "MACOSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}") else() - set(DEPLOYMENT_TARGET "") + execute_process(COMMAND sw_vers -productVersion + OUTPUT_VARIABLE MACOS_VERSION + OUTPUT_STRIP_TRAILING_WHITESPACE) + set(DEPLOYMENT_TARGET "MACOSX_DEPLOYMENT_TARGET=${MACOS_VERSION}") endif() +else() + set(DEPLOYMENT_TARGET "") +endif() - BuildLuaJit(INSTALL_COMMAND ${INSTALLCMD_UNIX} +if((UNIX AND NOT APPLE) OR (APPLE AND NOT CMAKE_OSX_ARCHITECTURES)) + BuildLuaJit(INSTALL_COMMAND ${BUILDCMD_UNIX} CC=${DEPS_C_COMPILER} PREFIX=${DEPS_INSTALL_DIR} - ${DEPLOYMENT_TARGET}) + ${DEPLOYMENT_TARGET} install) -elseif(MINGW AND CMAKE_CROSSCOMPILING) +elseif(CMAKE_OSX_ARCHITECTURES AND APPLE) - # Build luajit for the host - BuildLuaJit(TARGET luajit_host - CONFIGURE_COMMAND "" - BUILD_COMMAND "" - INSTALL_COMMAND ${INSTALLCMD_UNIX} - CC=${HOST_C_COMPILER} PREFIX=${HOSTDEPS_INSTALL_DIR}) + # Passing multiple `-arch` flags to the LuaJIT build will cause it to fail. + # To get a working universal build, we build each requested architecture slice + # individually then `lipo` them all up. + set(LUAJIT_SRC_DIR "${DEPS_BUILD_DIR}/src/luajit") + foreach(ARCH IN LISTS CMAKE_OSX_ARCHITECTURES) + set(STATIC_CC "${LUAJIT_C_COMPILER} -arch ${ARCH}") + set(DYNAMIC_CC "${LUAJIT_C_COMPILER} -arch ${ARCH} -fPIC") + set(TARGET_LD "${LUAJIT_C_COMPILER} -arch ${ARCH}") + list(APPEND LUAJIT_THIN_EXECUTABLES "${LUAJIT_SRC_DIR}-${ARCH}/src/luajit") + list(APPEND LUAJIT_THIN_STATIC_LIBS "${LUAJIT_SRC_DIR}-${ARCH}/src/libluajit.a") + list(APPEND LUAJIT_THIN_DYLIBS "${LUAJIT_SRC_DIR}-${ARCH}/src/libluajit.so") + list(APPEND LUAJIT_THIN_TARGETS "luajit-${ARCH}") - # Build luajit for the target + # See https://luajit.org/install.html#cross. + BuildLuaJit(TARGET "luajit-${ARCH}" + BUILD_COMMAND ${BUILDCMD_UNIX} + CC=${LUAJIT_C_COMPILER} STATIC_CC=${STATIC_CC} + DYNAMIC_CC=${DYNAMIC_CC} TARGET_LD=${TARGET_LD} + PREFIX=${DEPS_INSTALL_DIR} + ${DEPLOYMENT_TARGET}) + endforeach() BuildLuaJit( - # Similar to Unix + cross - fPIC - INSTALL_COMMAND - ${MAKE_PRG} PREFIX=${DEPS_INSTALL_DIR} - BUILDMODE=static install - TARGET_SYS=${CMAKE_SYSTEM_NAME} - CROSS=${CROSS_TARGET}- - HOST_CC=${HOST_C_COMPILER} HOST_CFLAGS=${HOST_C_FLAGS} - HOST_LDFLAGS=${HOST_EXE_LINKER_FLAGS} - FILE_T=luajit.exe - Q= - INSTALL_TSYMNAME=luajit.exe) + CONFIGURE_COMMAND ${BUILDCMD_UNIX} CC=${LUAJIT_C_COMPILER} PREFIX=${DEPS_INSTALL_DIR} ${DEPLOYMENT_TARGET} + COMMAND ${CMAKE_COMMAND} -E rm -f ${LUAJIT_SRC_DIR}/src/luajit ${LUAJIT_SRC_DIR}/src/libluajit.so ${LUAJIT_SRC_DIR}/src/libluajit.a + BUILD_COMMAND lipo ${LUAJIT_THIN_EXECUTABLES} -create -output ${LUAJIT_SRC_DIR}/src/luajit + COMMAND lipo ${LUAJIT_THIN_STATIC_LIBS} -create -output ${LUAJIT_SRC_DIR}/src/libluajit.a + COMMAND lipo ${LUAJIT_THIN_DYLIBS} -create -output ${LUAJIT_SRC_DIR}/src/libluajit.so + INSTALL_COMMAND ${BUILDCMD_UNIX} CC=${LUAJIT_C_COMPILER} PREFIX=${DEPS_INSTALL_DIR} ${DEPLOYMENT_TARGET} install + DEPENDS ${LUAJIT_THIN_TARGETS} + ) elseif(MINGW) diff --git a/third-party/cmake/BuildLuarocks.cmake b/third-party/cmake/BuildLuarocks.cmake index 0cef37736d..065027d86e 100644 --- a/third-party/cmake/BuildLuarocks.cmake +++ b/third-party/cmake/BuildLuarocks.cmake @@ -56,7 +56,7 @@ endif() # Defaults to 5.1 for bundled LuaJIT/Lua. set(LUA_VERSION "5.1") -if(UNIX OR (MINGW AND CMAKE_CROSSCOMPILING)) +if(UNIX) if(USE_BUNDLED_LUAJIT) list(APPEND LUAROCKS_OPTS @@ -123,9 +123,6 @@ list(APPEND THIRD_PARTY_DEPS luarocks) if(USE_BUNDLED_LUAJIT) add_dependencies(luarocks luajit) - if(MINGW AND CMAKE_CROSSCOMPILING) - add_dependencies(luarocks luajit_host) - endif() elseif(USE_BUNDLED_LUA) add_dependencies(luarocks lua) endif() @@ -196,9 +193,6 @@ if(USE_BUNDLED_BUSTED) set(LUV_DEPS luacheck) if(USE_BUNDLED_LUV) list(APPEND LUV_DEPS luv-static lua-compat-5.3) - if(MINGW AND CMAKE_CROSSCOMPILING) - list(APPEND LUV_DEPS libuv_host) - endif() set(LUV_ARGS "CFLAGS=-O0 -g3 -fPIC") if(USE_BUNDLED_LIBUV) list(APPEND LUV_ARGS LIBUV_DIR=${HOSTDEPS_INSTALL_DIR}) diff --git a/third-party/cmake/BuildLuv.cmake b/third-party/cmake/BuildLuv.cmake index 99822249c2..6e9a333dc8 100644 --- a/third-party/cmake/BuildLuv.cmake +++ b/third-party/cmake/BuildLuv.cmake @@ -48,7 +48,8 @@ function(BuildLuv) PATCH_COMMAND "${_luv_PATCH_COMMAND}" CONFIGURE_COMMAND "${_luv_CONFIGURE_COMMAND}" BUILD_COMMAND "${_luv_BUILD_COMMAND}" - INSTALL_COMMAND "${_luv_INSTALL_COMMAND}") + INSTALL_COMMAND "${_luv_INSTALL_COMMAND}" + LIST_SEPARATOR |) endfunction() set(LUV_SRC_DIR ${DEPS_BUILD_DIR}/src/luv) @@ -65,6 +66,7 @@ set(LUV_CONFIGURE_COMMAND_COMMON -DCMAKE_GENERATOR=${CMAKE_GENERATOR} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} + -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES_ALT_SEP} -DLUA_BUILD_TYPE=System -DLUA_COMPAT53_DIR=${DEPS_BUILD_DIR}/src/lua-compat-5.3 -DWITH_SHARED_LIBUV=ON @@ -91,16 +93,7 @@ if(USE_BUNDLED_LIBUV) -DCMAKE_PREFIX_PATH=${DEPS_INSTALL_DIR}) endif() -if(MINGW AND CMAKE_CROSSCOMPILING) - get_filename_component(TOOLCHAIN ${CMAKE_TOOLCHAIN_FILE} REALPATH) - set(LUV_CONFIGURE_COMMAND - ${LUV_CONFIGURE_COMMAND_COMMON} - # Pass toolchain - -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN} - "-DCMAKE_C_FLAGS:STRING=${LUV_INCLUDE_FLAGS} -D_WIN32_WINNT=0x0600" - # Hack to avoid -rdynamic in Mingw - -DCMAKE_SHARED_LIBRARY_LINK_C_FLAGS="") -elseif(MSVC) +if(MSVC) set(LUV_CONFIGURE_COMMAND ${LUV_CONFIGURE_COMMAND_COMMON} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} diff --git a/third-party/cmake/BuildMsgpack.cmake b/third-party/cmake/BuildMsgpack.cmake index ee4f0eb080..400fac8fde 100644 --- a/third-party/cmake/BuildMsgpack.cmake +++ b/third-party/cmake/BuildMsgpack.cmake @@ -27,7 +27,8 @@ function(BuildMsgpack) -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake CONFIGURE_COMMAND "${_msgpack_CONFIGURE_COMMAND}" BUILD_COMMAND "${_msgpack_BUILD_COMMAND}" - INSTALL_COMMAND "${_msgpack_INSTALL_COMMAND}") + INSTALL_COMMAND "${_msgpack_INSTALL_COMMAND}" + LIST_SEPARATOR |) endfunction() set(MSGPACK_CONFIGURE_COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/msgpack @@ -37,25 +38,14 @@ set(MSGPACK_CONFIGURE_COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/msgpack -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES_ALT_SEP} "-DCMAKE_C_FLAGS:STRING=${CMAKE_C_COMPILER_ARG1} -fPIC" -DCMAKE_GENERATOR=${CMAKE_GENERATOR}) set(MSGPACK_BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE}) set(MSGPACK_INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config ${CMAKE_BUILD_TYPE}) -if(MINGW AND CMAKE_CROSSCOMPILING) - get_filename_component(TOOLCHAIN ${CMAKE_TOOLCHAIN_FILE} REALPATH) - set(MSGPACK_CONFIGURE_COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/msgpack - -DMSGPACK_ENABLE_CXX=OFF - -DMSGPACK_BUILD_TESTS=OFF - -DMSGPACK_BUILD_EXAMPLES=OFF - -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} - # Pass toolchain - -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN} - -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} - # Hack to avoid -rdynamic in Mingw - -DCMAKE_SHARED_LIBRARY_LINK_C_FLAGS="") -elseif(MSVC) +if(MSVC) # Same as Unix without fPIC set(MSGPACK_CONFIGURE_COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/msgpack -DMSGPACK_ENABLE_CXX=OFF diff --git a/third-party/cmake/BuildTreesitterParsers.cmake b/third-party/cmake/BuildTreesitterParsers.cmake index 4ceb402455..11ffb792de 100644 --- a/third-party/cmake/BuildTreesitterParsers.cmake +++ b/third-party/cmake/BuildTreesitterParsers.cmake @@ -19,9 +19,11 @@ CMAKE_ARGS -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} + -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES_ALT_SEP} # Pass toolchain -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} -DPARSERLANG=c BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE} -INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config ${CMAKE_BUILD_TYPE}) +INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config ${CMAKE_BUILD_TYPE} +LIST_SEPARATOR |)