authorgravatar for michael.dusan@gmail.comMichael Dusan <michael.dusan@gmail.com> 2023-04-29 13:14:51-04:00
committergravatar for michael.dusan@gmail.comMichael Dusan <michael.dusan@gmail.com> 2023-05-16 16:45:10-04:00
log8eaf2ff207242bdac5092b262079543274a72f75
tree0c44f58ebacd1c2ee3430904ecfba5469fa9219e
parent247b35360900367c3678f2d8a6dd0d0693f17072

cmake: add ZIG_PIE toggle for -Dpie

- add pkg-maintainer-friendly option to enable PIE when building zig - fix `ZIG_PIE_ARG` syntax

1 files changed, 11 insertions(+), 4 deletions(-)

CMakeLists.txt+11-4
......@@ -120,6 +120,8 @@ if(ZIG_AR_WORKAROUND)
120120 string(REPLACE "<CMAKE_AR>" "<CMAKE_AR> ar" CMAKE_CXX_ARCHIVE_CREATE ${CMAKE_CXX_ARCHIVE_CREATE})
121121endif()
122122
123set(ZIG_PIE off CACHE BOOL "produce a position independent zig executable")
124
123125find_package(llvm 16)
124126find_package(clang 16)
125127find_package(lld 16)
......@@ -671,7 +673,12 @@ if(ZIG_STATIC)
671673endif()
672674
673675add_library(zigcpp STATIC ${ZIG_CPP_SOURCES})
674set_target_properties(zigcpp PROPERTIES COMPILE_FLAGS ${EXE_CXX_FLAGS})
676if(ZIG_PIE)
677 set(ZIGCPP_CXX_FLAGS "${EXE_CXX_FLAGS} -fPIC")
678else()
679 set(ZIGCPP_CXX_FLAGS "${EXE_CXX_FLAGS}")
680endif()
681set_target_properties(zigcpp PROPERTIES COMPILE_FLAGS ${ZIGCPP_CXX_FLAGS})
675682
676683target_link_libraries(zigcpp LINK_PUBLIC
677684 ${CLANG_LIBRARIES}
......@@ -823,10 +830,10 @@ else()
823830 set(ZIG_STATIC_ARG "")
824831endif()
825832
826if(CMAKE_POSITION_INDEPENDENT_CODE)
827 set(ZIG_PIE_ARG="-Dpie")
833if(CMAKE_POSITION_INDEPENDENT_CODE OR ZIG_PIE)
834 set(ZIG_PIE_ARG "-Dpie")
828835else()
829 set(ZIG_PIE_ARG="")
836 set(ZIG_PIE_ARG "")
830837endif()
831838
832839set(ZIG_BUILD_ARGS