From 33347ad9c32fb3cd4dff859193057a103064fe6c Mon Sep 17 00:00:00 2001 From: proller Date: Mon, 30 Jan 2017 16:40:04 +0300 Subject: [PATCH] Cmake: some fixes --- CMakeLists.txt | 4 ++-- cmake/find_readline_edit.cmake | 6 ++++-- cmake/find_rt.cmake | 3 ++- cmake/test_compiler.cmake | 11 +++++++++++ 4 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 cmake/test_compiler.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 34eec132a8e..559e9395af7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -125,12 +125,12 @@ if (NOT APPLE) set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${GLIBC_COMPATIBILITY_LINK_FLAGS} ${CXX11_ABI_FLAGS}") endif () -if (USE_STATIC_LIBRARIES AND NOT CMAKE_CXX_COMPILER_ID STREQUAL "Clang") +include (cmake/test_compiler.cmake) +if (USE_STATIC_LIBRARIES AND HAVE_NO_PIE) set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --no-pie") set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --no-pie") endif () - set (SAN_FLAGS "-O3 -g -fno-omit-frame-pointer") set (CMAKE_CXX_FLAGS_ASAN "${CMAKE_CXX_FLAGS_ASAN} ${SAN_FLAGS} -fsanitize=address") set (CMAKE_C_FLAGS_ASAN "${CMAKE_C_FLAGS_ASAN} ${SAN_FLAGS} -fsanitize=address") diff --git a/cmake/find_readline_edit.cmake b/cmake/find_readline_edit.cmake index 76a704dc27b..0920b8efa9e 100644 --- a/cmake/find_readline_edit.cmake +++ b/cmake/find_readline_edit.cmake @@ -5,12 +5,13 @@ if (NOT READLINE_LIB) find_library (READLINE_LIB NAMES readline PATHS ${READLINE_PATHS}) endif () -find_library (TERMCAP_LIB NAMES termcap) +list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES .so.2) +find_library (TERMCAP_LIB NAMES termcap) find_library (EDIT_LIB NAMES edit) set(READLINE_INCLUDE_PATHS "/usr/local/opt/readline/include") -if (READLINE_LIB) +if (READLINE_LIB AND TERMCAP_LIB) find_path (READLINE_INCLUDE_DIR NAMES readline/readline.h PATHS ${READLINE_INCLUDE_PATHS} NO_DEFAULT_PATH) if (NOT READLINE_INCLUDE_DIR) find_path (READLINE_INCLUDE_DIR NAMES readline/readline.h PATHS ${READLINE_INCLUDE_PATHS}) @@ -40,5 +41,6 @@ check_cxx_source_runs(" int main() { add_history(nullptr); append_history(1,nullptr); + return 0; } " HAVE_READLINE_HISTORY) diff --git a/cmake/find_rt.cmake b/cmake/find_rt.cmake index f845a3795dd..30f2eb5058c 100644 --- a/cmake/find_rt.cmake +++ b/cmake/find_rt.cmake @@ -1,5 +1,6 @@ if (APPLE) - find_library (RT_LIBRARIES apple_rt) + # lib from libs/libcommon + set (RT_LIBRARIES "apple_rt") else () find_library (RT_LIBRARIES rt) endif () diff --git a/cmake/test_compiler.cmake b/cmake/test_compiler.cmake new file mode 100644 index 00000000000..39097d84d01 --- /dev/null +++ b/cmake/test_compiler.cmake @@ -0,0 +1,11 @@ +include (CheckCXXSourceCompiles) + +set (TEST_FLAG "--no-pie") +set (CMAKE_REQUIRED_FLAGS "${TEST_FLAG}") +check_cxx_source_compiles(" + int main() { + return 0; + } +" HAVE_NO_PIE) + +set (CMAKE_REQUIRED_FLAGS "")