Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions tools/bootgen/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,11 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
target_compile_options(bootgen-lib PRIVATE /wd4996 /wd4840 /wd4005 /wd5033)
endif()
target_compile_options(bootgen-lib PRIVATE ${bootgen_warning_ignores})
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU" AND NOT MSVC)
# The POSITION_INDEPENDENT_CODE property above doesn't reliably force PIC
# so pass -fPIC explicitly, last, so it wins over any inherited -fno-PIC.
target_compile_options(bootgen-lib PRIVATE -fPIC)
endif()
target_include_directories(bootgen-lib PRIVATE ${BOOTGEN_SOURCE} ${OPENSSL_INCLUDE_DIR})
# Make C API header available publicly
target_include_directories(bootgen-lib PUBLIC
Expand All @@ -166,6 +171,12 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
target_compile_options(bootgen PRIVATE /EHsc)
target_compile_options(bootgen PRIVATE /wd4996 /wd4840 /wd4005 /wd5033)
endif()
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU" AND NOT MSVC)
# See bootgen-lib above. -fPIE is compile-only; -pie is the link-mode
# switch (kept separate since some toolchains don't accept -fPIE at link).
target_compile_options(bootgen PRIVATE -fPIE)
target_link_options(bootgen PRIVATE -pie)
endif()
target_compile_definitions(bootgen PRIVATE OPENSSL_USE_APPLINK)
target_link_libraries(bootgen PRIVATE bootgen-lib OpenSSL::SSL OpenSSL::applink)
install(TARGETS bootgen)
Expand Down
Loading