aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordundargoc <33953936+dundargoc@users.noreply.github.com>2023-01-22 18:02:02 +0100
committerGitHub <noreply@github.com>2023-01-22 18:02:02 +0100
commit63e67468b45edcc899de24a1940985bccf68f66a (patch)
treeb8c8c5a7694ea7d98b1404d67a9d5b1492ec1071
parent151b9fc52e3cd69b386eb2dc4e5a0d179667190b (diff)
downloadrneovim-63e67468b45edcc899de24a1940985bccf68f66a.tar.gz
rneovim-63e67468b45edcc899de24a1940985bccf68f66a.tar.bz2
rneovim-63e67468b45edcc899de24a1940985bccf68f66a.zip
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.
-rw-r--r--cmake.deps/cmake/BuildLibvterm.cmake6
-rw-r--r--cmake.deps/cmake/BuildLuv.cmake18
-rw-r--r--cmake.deps/cmake/BuildMsgpack.cmake6
-rw-r--r--cmake.deps/cmake/TreesitterParserCMakeLists.txt1
-rwxr-xr-xsrc/nvim/CMakeLists.txt6
5 files changed, 10 insertions, 27 deletions
diff --git a/cmake.deps/cmake/BuildLibvterm.cmake b/cmake.deps/cmake/BuildLibvterm.cmake
index dffa545638..2e508a8dc8 100644
--- 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
index c37a870b3d..ec0707020a 100644
--- 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
index 9d112c57b1..8347eb6170 100644
--- 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
index 44e4ef160f..9bdf500aa7 100644
--- 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
index 4d8e9c90bd..62e4db4a5c 100755
--- 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()