diff options
author | Wohlstand <admin@wohlnet.ru> | 2019-09-23 12:33:43 +0300 |
---|---|---|
committer | Wohlstand <admin@wohlnet.ru> | 2019-09-23 12:33:43 +0300 |
commit | 8749ddc3da9574c2406a7dfd2fd6a4639148beef (patch) | |
tree | 6a9c4efffeca6941d4a6e4f5ad76eb9eb81896ed | |
parent | 62a018a1338b807d325d44a512499cf31563ab26 (diff) | |
download | libADLMIDI-8749ddc3da9574c2406a7dfd2fd6a4639148beef.tar.gz libADLMIDI-8749ddc3da9574c2406a7dfd2fd6a4639148beef.tar.bz2 libADLMIDI-8749ddc3da9574c2406a7dfd2fd6a4639148beef.zip |
Set "-no-pie" to all executables built by GCC
Otherwise, this happens: https://stackoverflow.com/questions/46551213/gcc-7-2-compiles-shared-library-instead-of-executable
-rw-r--r-- | CMakeLists.txt | 18 | ||||
-rw-r--r-- | examples/sdl2_audio/CMakeLists.txt | 5 | ||||
-rw-r--r-- | utils/adlmidi-2/CMakeLists.txt | 4 | ||||
-rw-r--r-- | utils/dumpbank/CMakeLists.txt | 4 | ||||
-rw-r--r-- | utils/dumpmiles/CMakeLists.txt | 4 | ||||
-rw-r--r-- | utils/gen_adldata/CMakeLists.txt | 4 | ||||
-rw-r--r-- | utils/midiplay/CMakeLists.txt | 5 |
7 files changed, 38 insertions, 6 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 3e3cd41..2da1a4b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -63,12 +63,6 @@ if(MSVC) add_definitions(-D_CRT_SECURE_NO_WARNINGS) endif() -# -fPIC thing -if(NOT WIN32 AND NOT ADLMIDI_DOS) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") -endif() - if(OPENBSD_LOCALBASE) message("OpenBSD Detected!") include_directories(${OPENBSD_LOCALBASE}/include) @@ -232,6 +226,12 @@ if(libADLMIDI_STATIC OR WITH_VLC_PLUGIN) set_legacy_standard(ADLMIDI_static) set_visibility_hidden(ADLMIDI_static) handle_options(ADLMIDI_static) + + # -fPIC thing + if(NOT WIN32 AND NOT ADLMIDI_DOS) + set_target_properties(ADLMIDI_static PROPERTIES COMPILE_FLAGS "-fPIC") + endif() + if(NOT libADLMIDI_STATIC) set_target_properties(ADLMIDI_static PROPERTIES EXCLUDE_FROM_ALL TRUE) endif() @@ -255,6 +255,12 @@ if(libADLMIDI_SHARED) if(OPENBSD_LOCALBASE) set_property(TARGET ADLMIDI_shared APPEND_STRING PROPERTY LINK_FLAGS " -lc") endif() + + # -fPIC thing + if(NOT WIN32 AND NOT ADLMIDI_DOS) + set_target_properties(ADLMIDI_shared PROPERTIES COMPILE_FLAGS "-fPIC") + endif() + set_target_properties(ADLMIDI_shared PROPERTIES SOVERSION "1") endif() diff --git a/examples/sdl2_audio/CMakeLists.txt b/examples/sdl2_audio/CMakeLists.txt index e1f797a..fa206a7 100644 --- a/examples/sdl2_audio/CMakeLists.txt +++ b/examples/sdl2_audio/CMakeLists.txt @@ -5,6 +5,10 @@ add_executable(adlmidi_sdl2_demo sdl2_sample.c) target_include_directories(adlmidi_sdl2_demo PRIVATE ${SDL2_INCLUDE_DIRS}) target_link_libraries(adlmidi_sdl2_demo PRIVATE ADLMIDI ${SDL2_LIBRARIES}) +if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) + set_property(TARGET adlmidi_sdl2_demo APPEND_STRING PROPERTY LINK_FLAGS " -no-pie") +endif() + if(NOT MSVC) target_link_libraries(adlmidi_sdl2_demo PRIVATE pthread) endif() @@ -18,3 +22,4 @@ endif() install(TARGETS adlmidi_sdl2_demo RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") + diff --git a/utils/adlmidi-2/CMakeLists.txt b/utils/adlmidi-2/CMakeLists.txt index 8390a95..3b9c4f3 100644 --- a/utils/adlmidi-2/CMakeLists.txt +++ b/utils/adlmidi-2/CMakeLists.txt @@ -29,6 +29,10 @@ if(NOT WIN32 AND NOT ADLMIDI_DOS) target_link_libraries(adlmidi2 PRIVATE ADLMIDI_SDL2) endif() +if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) + set_property(TARGET adlmidi2 APPEND_STRING PROPERTY LINK_FLAGS " -no-pie") +endif() + if(ADLMIDI2_HAS_PUZZLE_GAME) target_compile_definitions(adlmidi2 PUBLIC SUPPORT_PUZZLE_GAME) endif() diff --git a/utils/dumpbank/CMakeLists.txt b/utils/dumpbank/CMakeLists.txt index 1b84efe..1630ea5 100644 --- a/utils/dumpbank/CMakeLists.txt +++ b/utils/dumpbank/CMakeLists.txt @@ -1,5 +1,9 @@ add_executable(adldumpbank dumpbank.cpp) +if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) + set_property(TARGET adldumpbank APPEND_STRING PROPERTY LINK_FLAGS " -no-pie") +endif() + install(TARGETS adldumpbank RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") diff --git a/utils/dumpmiles/CMakeLists.txt b/utils/dumpmiles/CMakeLists.txt index 0faab06..1e4349c 100644 --- a/utils/dumpmiles/CMakeLists.txt +++ b/utils/dumpmiles/CMakeLists.txt @@ -1,5 +1,9 @@ add_executable(adldumpmiles dumpmiles.cpp) +if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) + set_property(TARGET adldumpmiles APPEND_STRING PROPERTY LINK_FLAGS " -no-pie") +endif() + install(TARGETS adldumpmiles RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") diff --git a/utils/gen_adldata/CMakeLists.txt b/utils/gen_adldata/CMakeLists.txt index 56662e7..bd52283 100644 --- a/utils/gen_adldata/CMakeLists.txt +++ b/utils/gen_adldata/CMakeLists.txt @@ -51,6 +51,10 @@ else() target_link_libraries(gen_adldata PRIVATE pthread m) endif() +if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) + set_property(TARGET gen_adldata APPEND_STRING PROPERTY LINK_FLAGS " -no-pie") +endif() + if(WITH_GENADLDATA_COMMENTS) target_compile_options(gen_adldata PUBLIC "-DADLDATA_WITH_COMMENTS") endif() diff --git a/utils/midiplay/CMakeLists.txt b/utils/midiplay/CMakeLists.txt index 59f77fe..14766b6 100644 --- a/utils/midiplay/CMakeLists.txt +++ b/utils/midiplay/CMakeLists.txt @@ -3,6 +3,10 @@ add_executable(adlmidiplay wave_writer.c ) +if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) + set_property(TARGET adlmidiplay APPEND_STRING PROPERTY LINK_FLAGS " -no-pie") +endif() + if(NOT ADLMIDI_DOS AND NOT MIDIPLAY_WAVE_ONLY) libADLMIDI_find_SDL2() target_link_libraries(adlmidiplay PRIVATE ADLMIDI_SDL2) @@ -41,3 +45,4 @@ endif() install(TARGETS adlmidiplay RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") + |