diff --git a/CMakeLists.txt b/CMakeLists.txt index 164f9ff..20db3da 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,5 @@ cmake_minimum_required(VERSION 3.5) +include(CheckCXXCompilerFlag) project(FlashMQ LANGUAGES CXX) @@ -7,7 +8,13 @@ add_definitions(-DOPENSSL_API_COMPAT=0x10100000L) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) -SET(CMAKE_CXX_FLAGS "-rdynamic -msse4.2") +SET(CMAKE_CXX_FLAGS "-msse4.2") + +check_cxx_compiler_flag("-rdynamic" COMPILER_SUPPORTS_RDYNAMIC) +if (${COMPILER_SUPPORTS_RDYNAMIC}) + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -rdynamic") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -rdynamic") +endif() add_compile_options(-Wall) diff --git a/build.sh b/build.sh index bfb9913..4d00cef 100755 --- a/build.sh +++ b/build.sh @@ -10,15 +10,15 @@ fi BUILD_DIR="FlashMQBuild$BUILD_TYPE" +set -eu + if [[ -e "$BUILD_DIR" ]]; then - echo "$BUILD_DIR already exists. Not doing anything. You can run 'make' in it, if you want." - exit 1 + >&2 echo "$BUILD_DIR already exists. You can run 'make' in it, if you want. +" +else + mkdir "$BUILD_DIR" fi -set -e -set -u - -mkdir "$BUILD_DIR" cd "$BUILD_DIR" cmake -DCMAKE_BUILD_TYPE="$BUILD_TYPE" "$thisdir"