aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWohlstand <admin@wohlnet.ru>2019-09-23 12:33:43 +0300
committerWohlstand <admin@wohlnet.ru>2019-09-23 12:33:43 +0300
commit8749ddc3da9574c2406a7dfd2fd6a4639148beef (patch)
tree6a9c4efffeca6941d4a6e4f5ad76eb9eb81896ed
parent62a018a1338b807d325d44a512499cf31563ab26 (diff)
downloadlibADLMIDI-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.txt18
-rw-r--r--examples/sdl2_audio/CMakeLists.txt5
-rw-r--r--utils/adlmidi-2/CMakeLists.txt4
-rw-r--r--utils/dumpbank/CMakeLists.txt4
-rw-r--r--utils/dumpmiles/CMakeLists.txt4
-rw-r--r--utils/gen_adldata/CMakeLists.txt4
-rw-r--r--utils/midiplay/CMakeLists.txt5
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}")
+