neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit 63e67468b45edcc899de24a1940985bccf68f66a
parent 151b9fc52e3cd69b386eb2dc4e5a0d179667190b
Author: dundargoc <33953936+dundargoc@users.noreply.github.com>
Date:   Sun, 22 Jan 2023 18:02:02 +0100

build: use CMAKE_POSITION_INDEPENDENT_CODE instead of -fPIC (#21947)

It's simpler to let cmake figure out what flags to add to each platforms
to create position independent code rather than handling it ourselves.

Also remove code that sets POSITION_INDEPENDENT_CODE property on SHARED
and MODULE libraries, as it's already on by default.
Diffstat:
Mcmake.deps/cmake/BuildLibvterm.cmake | 6++----
Mcmake.deps/cmake/BuildLuv.cmake | 18+++++++-----------
Mcmake.deps/cmake/BuildMsgpack.cmake | 6+-----
Mcmake.deps/cmake/TreesitterParserCMakeLists.txt | 1-
Msrc/nvim/CMakeLists.txt | 6------
5 files changed, 10 insertions(+), 27 deletions(-)

diff --git a/cmake.deps/cmake/BuildLibvterm.cmake b/cmake.deps/cmake/BuildLibvterm.cmake @@ -9,10 +9,8 @@ if(WIN32) -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} - -DCMAKE_GENERATOR=${CMAKE_GENERATOR}) - if(NOT MSVC) - list(APPEND LIBVTERM_CONFIGURE_COMMAND "-DCMAKE_C_FLAGS:STRING=-fPIC") - endif() + -DCMAKE_GENERATOR=${CMAKE_GENERATOR} + -DCMAKE_POSITION_INDEPENDENT_CODE=ON) set(LIBVTERM_BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>) set(LIBVTERM_INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $<CONFIG>) else() diff --git a/cmake.deps/cmake/BuildLuv.cmake b/cmake.deps/cmake/BuildLuv.cmake @@ -12,7 +12,8 @@ set(LUV_CMAKE_ARGS -DWITH_SHARED_LIBUV=ON -DBUILD_SHARED_LIBS=OFF -DBUILD_STATIC_LIBS=ON - -DBUILD_MODULE=OFF) + -DBUILD_MODULE=OFF + -DCMAKE_POSITION_INDEPENDENT_CODE=ON) if(USE_BUNDLED_LUAJIT) list(APPEND LUV_CMAKE_ARGS -DWITH_LUA_ENGINE=LuaJit) @@ -33,16 +34,11 @@ if(USE_BUNDLED_LIBUV) -DLIBUV_LIBRARIES=uv_a) endif() -if(MSVC) - list(APPEND LUV_CMAKE_ARGS - "-DCMAKE_C_FLAGS:STRING=${LUV_INCLUDE_FLAGS}") -else() - list(APPEND LUV_CMAKE_ARGS - "-DCMAKE_C_FLAGS:STRING=${LUV_INCLUDE_FLAGS} -fPIC") - if(CMAKE_GENERATOR MATCHES "Unix Makefiles" AND - (CMAKE_SYSTEM_NAME MATCHES ".*BSD" OR CMAKE_SYSTEM_NAME MATCHES "DragonFly")) - list(APPEND LUV_CMAKE_ARGS -DCMAKE_MAKE_PROGRAM=gmake) - endif() +list(APPEND LUV_CMAKE_ARGS + "-DCMAKE_C_FLAGS:STRING=${LUV_INCLUDE_FLAGS}") +if(CMAKE_GENERATOR MATCHES "Unix Makefiles" AND + (CMAKE_SYSTEM_NAME MATCHES ".*BSD" OR CMAKE_SYSTEM_NAME MATCHES "DragonFly")) + list(APPEND LUV_CMAKE_ARGS -DCMAKE_MAKE_PROGRAM=gmake) endif() if(USE_EXISTING_SRC_DIR) diff --git a/cmake.deps/cmake/BuildMsgpack.cmake b/cmake.deps/cmake/BuildMsgpack.cmake @@ -5,13 +5,9 @@ set(MSGPACK_CMAKE_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -DCMAKE_GENERATOR=${CMAKE_GENERATOR} -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} + -DCMAKE_POSITION_INDEPENDENT_CODE=ON ${BUILD_TYPE_STRING}) -if(NOT MSVC) - list(APPEND MSGPACK_CMAKE_ARGS - "-DCMAKE_C_FLAGS:STRING=-fPIC") -endif() - if(USE_EXISTING_SRC_DIR) unset(MSGPACK_URL) endif() diff --git a/cmake.deps/cmake/TreesitterParserCMakeLists.txt b/cmake.deps/cmake/TreesitterParserCMakeLists.txt @@ -11,7 +11,6 @@ add_library(parser set_target_properties( parser PROPERTIES - POSITION_INDEPENDENT_CODE ON OUTPUT_NAME ${PARSERLANG} PREFIX "" ) diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt @@ -861,7 +861,6 @@ endif() set_target_properties( libnvim PROPERTIES - POSITION_INDEPENDENT_CODE ON OUTPUT_NAME ${LIBNVIM_NAME} ) target_compile_definitions(libnvim PRIVATE MAKE_LIB) @@ -885,11 +884,6 @@ else() target_link_libraries(nvim-test PRIVATE "-framework CoreServices") endif() target_include_directories(nvim-test PRIVATE ${LUAJIT_INCLUDE_DIRS}) - set_target_properties( - nvim-test - PROPERTIES - POSITION_INDEPENDENT_CODE ON - ) target_compile_definitions(nvim-test PRIVATE UNIT_TESTING) endif()