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.
This commit is contained in:
dundargoc 2023-01-22 18:02:02 +01:00 committed by GitHub
parent 151b9fc52e
commit 63e67468b4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 10 additions and 27 deletions

View File

@ -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()

View File

@ -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)

View File

@ -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()

View File

@ -11,7 +11,6 @@ add_library(parser
set_target_properties(
parser
PROPERTIES
POSITION_INDEPENDENT_CODE ON
OUTPUT_NAME ${PARSERLANG}
PREFIX ""
)

View File

@ -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()