| ... | @@ -120,6 +120,8 @@ if(ZIG_AR_WORKAROUND) | ... | @@ -120,6 +120,8 @@ if(ZIG_AR_WORKAROUND) |
| 120 | string(REPLACE "<CMAKE_AR>" "<CMAKE_AR> ar" CMAKE_CXX_ARCHIVE_CREATE ${CMAKE_CXX_ARCHIVE_CREATE}) | 120 | string(REPLACE "<CMAKE_AR>" "<CMAKE_AR> ar" CMAKE_CXX_ARCHIVE_CREATE ${CMAKE_CXX_ARCHIVE_CREATE}) |
| 121 | endif() | 121 | endif() |
| 122 | | 122 | |
| | 123 | set(ZIG_PIE off CACHE BOOL "produce a position independent zig executable") |
| | 124 | |
| 123 | find_package(llvm 16) | 125 | find_package(llvm 16) |
| 124 | find_package(clang 16) | 126 | find_package(clang 16) |
| 125 | find_package(lld 16) | 127 | find_package(lld 16) |
| ... | @@ -671,7 +673,12 @@ if(ZIG_STATIC) | ... | @@ -671,7 +673,12 @@ if(ZIG_STATIC) |
| 671 | endif() | 673 | endif() |
| 672 | | 674 | |
| 673 | add_library(zigcpp STATIC ${ZIG_CPP_SOURCES}) | 675 | add_library(zigcpp STATIC ${ZIG_CPP_SOURCES}) |
| 674 | set_target_properties(zigcpp PROPERTIES COMPILE_FLAGS ${EXE_CXX_FLAGS}) | 676 | if(ZIG_PIE) |
| | 677 | set(ZIGCPP_CXX_FLAGS "${EXE_CXX_FLAGS} -fPIC") |
| | 678 | else() |
| | 679 | set(ZIGCPP_CXX_FLAGS "${EXE_CXX_FLAGS}") |
| | 680 | endif() |
| | 681 | set_target_properties(zigcpp PROPERTIES COMPILE_FLAGS ${ZIGCPP_CXX_FLAGS}) |
| 675 | | 682 | |
| 676 | target_link_libraries(zigcpp LINK_PUBLIC | 683 | target_link_libraries(zigcpp LINK_PUBLIC |
| 677 | ${CLANG_LIBRARIES} | 684 | ${CLANG_LIBRARIES} |
| ... | @@ -823,10 +830,10 @@ else() | ... | @@ -823,10 +830,10 @@ else() |
| 823 | set(ZIG_STATIC_ARG "") | 830 | set(ZIG_STATIC_ARG "") |
| 824 | endif() | 831 | endif() |
| 825 | | 832 | |
| 826 | if(CMAKE_POSITION_INDEPENDENT_CODE) | 833 | if(CMAKE_POSITION_INDEPENDENT_CODE OR ZIG_PIE) |
| 827 | set(ZIG_PIE_ARG="-Dpie") | 834 | set(ZIG_PIE_ARG "-Dpie") |
| 828 | else() | 835 | else() |
| 829 | set(ZIG_PIE_ARG="") | 836 | set(ZIG_PIE_ARG "") |
| 830 | endif() | 837 | endif() |
| 831 | | 838 | |
| 832 | set(ZIG_BUILD_ARGS | 839 | set(ZIG_BUILD_ARGS |