aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWohlstand <admin@wohlnet.ru>2019-09-23 12:51:19 +0300
committerWohlstand <admin@wohlnet.ru>2019-09-23 12:55:41 +0300
commit22248f90dd83413e91c8d4b66e652ef1a7954b60 (patch)
tree458b7d861c5a0845388717e1f1a10f4295b7a22f
parent8749ddc3da9574c2406a7dfd2fd6a4639148beef (diff)
downloadlibADLMIDI-22248f90dd83413e91c8d4b66e652ef1a7954b60.tar.gz
libADLMIDI-22248f90dd83413e91c8d4b66e652ef1a7954b60.tar.bz2
libADLMIDI-22248f90dd83413e91c8d4b66e652ef1a7954b60.zip
Don't call "-no-pie" when it's unavailable
-rw-r--r--CMakeLists.txt11
-rw-r--r--examples/sdl2_audio/CMakeLists.txt4
-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.txt4
7 files changed, 17 insertions, 18 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2da1a4b..7b31f09 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,6 +2,7 @@ cmake_minimum_required (VERSION 3.2)
project (libADLMIDI VERSION 1.4.1 LANGUAGES C CXX)
include(GNUInstallDirs)
+include(CheckCXXCompilerFlag)
# Prefer C90 standard
set(CMAKE_C_STANDARD 90)
@@ -68,6 +69,16 @@ if(OPENBSD_LOCALBASE)
include_directories(${OPENBSD_LOCALBASE}/include)
endif()
+if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
+ check_cxx_compiler_flag("-no-pie" HAS_NO_PIE)
+endif()
+
+function(set_nopie _target)
+ if(HAS_NO_PIE AND CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
+ set_property(TARGET ${_target} APPEND_STRING PROPERTY LINK_FLAGS " -no-pie")
+ endif()
+endfunction()
+
function(set_legacy_standard destTarget)
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
# Turn on warnings and legacy C/C++ standards to support more compilers
diff --git a/examples/sdl2_audio/CMakeLists.txt b/examples/sdl2_audio/CMakeLists.txt
index fa206a7..0732c10 100644
--- a/examples/sdl2_audio/CMakeLists.txt
+++ b/examples/sdl2_audio/CMakeLists.txt
@@ -5,9 +5,7 @@ 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()
+set_nopie(adlmidi_sdl2_demo)
if(NOT MSVC)
target_link_libraries(adlmidi_sdl2_demo PRIVATE pthread)
diff --git a/utils/adlmidi-2/CMakeLists.txt b/utils/adlmidi-2/CMakeLists.txt
index 3b9c4f3..02351fa 100644
--- a/utils/adlmidi-2/CMakeLists.txt
+++ b/utils/adlmidi-2/CMakeLists.txt
@@ -29,9 +29,7 @@ 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()
+set_nopie(adlmidi2)
if(ADLMIDI2_HAS_PUZZLE_GAME)
target_compile_definitions(adlmidi2 PUBLIC SUPPORT_PUZZLE_GAME)
diff --git a/utils/dumpbank/CMakeLists.txt b/utils/dumpbank/CMakeLists.txt
index 1630ea5..571cdef 100644
--- a/utils/dumpbank/CMakeLists.txt
+++ b/utils/dumpbank/CMakeLists.txt
@@ -1,8 +1,6 @@
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()
+set_nopie(adldumpbank)
install(TARGETS adldumpbank
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
diff --git a/utils/dumpmiles/CMakeLists.txt b/utils/dumpmiles/CMakeLists.txt
index 1e4349c..07f0a47 100644
--- a/utils/dumpmiles/CMakeLists.txt
+++ b/utils/dumpmiles/CMakeLists.txt
@@ -1,8 +1,6 @@
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()
+set_nopie(adldumpmiles)
install(TARGETS adldumpmiles
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
diff --git a/utils/gen_adldata/CMakeLists.txt b/utils/gen_adldata/CMakeLists.txt
index bd52283..a3be516 100644
--- a/utils/gen_adldata/CMakeLists.txt
+++ b/utils/gen_adldata/CMakeLists.txt
@@ -51,9 +51,7 @@ 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()
+set_nopie(gen_adldata)
if(WITH_GENADLDATA_COMMENTS)
target_compile_options(gen_adldata PUBLIC "-DADLDATA_WITH_COMMENTS")
diff --git a/utils/midiplay/CMakeLists.txt b/utils/midiplay/CMakeLists.txt
index 14766b6..c60450f 100644
--- a/utils/midiplay/CMakeLists.txt
+++ b/utils/midiplay/CMakeLists.txt
@@ -3,9 +3,7 @@ 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()
+set_nopie(adlmidiplay)
if(NOT ADLMIDI_DOS AND NOT MIDIPLAY_WAVE_ONLY)
libADLMIDI_find_SDL2()