From af77115f188cac6177c970c69347bbd5067a09b2 Mon Sep 17 00:00:00 2001 From: bfiete Date: Thu, 21 May 2020 13:30:30 -0700 Subject: [PATCH] macOS fixes --- BeefRT/CMakeLists.txt | 5 +---- BeefySysLib/CMakeLists.txt | 3 --- CMakeLists.txt | 25 +++++++++++++------------ IDE/src/BuildContext.bf | 3 +++ IDEHelper/CMakeLists.txt | 18 ++++-------------- bin/build.sh | 9 ++------- 6 files changed, 23 insertions(+), 40 deletions(-) diff --git a/BeefRT/CMakeLists.txt b/BeefRT/CMakeLists.txt index 95e324af..33d9b5d0 100644 --- a/BeefRT/CMakeLists.txt +++ b/BeefRT/CMakeLists.txt @@ -194,10 +194,7 @@ if(MSVC) set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /W3 /GL /Od /Oi /Gy /EHsc") endif(MSVC) if(NOT MSVC) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-rtti -Wno-multichar -Wno-invalid-offsetof") - if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") - #set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") - endif() + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-rtti -Wno-multichar -Wno-invalid-offsetof") endif(NOT MSVC) ################ Files ################ diff --git a/BeefySysLib/CMakeLists.txt b/BeefySysLib/CMakeLists.txt index 09ed390b..69921428 100644 --- a/BeefySysLib/CMakeLists.txt +++ b/BeefySysLib/CMakeLists.txt @@ -104,9 +104,6 @@ if(MSVC) endif(MSVC) if(NOT MSVC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wno-multichar") - if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") - #set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") - endif() endif(NOT MSVC) ################ Files ################ diff --git a/CMakeLists.txt b/CMakeLists.txt index eebb50fe..d12bee57 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,12 +1,13 @@ -cmake_minimum_required(VERSION 3.5) - -if(NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE "Debug") - message(STATUS "Build type not specified: Use Debug by default.") -endif(NOT CMAKE_BUILD_TYPE) - -add_subdirectory(extern/hunspell) -add_subdirectory(BeefySysLib) -add_subdirectory(IDEHelper) -add_subdirectory(BeefBoot) -add_subdirectory(BeefRT) +cmake_minimum_required(VERSION 3.5) +project("Beef") + +if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE "Debug") + message(STATUS "Build type not specified: Use Debug by default.") +endif(NOT CMAKE_BUILD_TYPE) + +add_subdirectory(extern/hunspell) +add_subdirectory(BeefySysLib) +add_subdirectory(IDEHelper) +add_subdirectory(BeefBoot) +add_subdirectory(BeefRT) diff --git a/IDE/src/BuildContext.bf b/IDE/src/BuildContext.bf index 82d73375..1a424714 100644 --- a/IDE/src/BuildContext.bf +++ b/IDE/src/BuildContext.bf @@ -312,6 +312,9 @@ namespace IDE if (mPlatformType == .Linux) linkLine.Append("-no-pie "); + if (mPlatformType == .macOS) + linkLine.Append("-Wl,-no_compact_unwind "); + linkLine.Append(objectsArg); //var destDir = scope String(); diff --git a/IDEHelper/CMakeLists.txt b/IDEHelper/CMakeLists.txt index c6920fc4..35b10e03 100644 --- a/IDEHelper/CMakeLists.txt +++ b/IDEHelper/CMakeLists.txt @@ -122,10 +122,7 @@ if(MSVC) set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /W3 /GL /Od /Oi /Gy /EHsc") endif(MSVC) if(NOT MSVC) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-rtti -Wno-multichar -Wno-invalid-offsetof") - if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") - #set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") - endif() + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-rtti -Wno-multichar -Wno-invalid-offsetof") endif(NOT MSVC) ################ Files ################ @@ -194,17 +191,10 @@ execute_process( OUTPUT_STRIP_TRAILING_WHITESPACE ) -set(TARGET_LIBS_OS "") +set(TARGET_LIBS_OS "${LLVM_SYSTEM_LIBS}") + if (HAVE_BACKTRACE_HEADERS) - set(TARGET_LIBS_OS "-lbacktrace") -endif() - -set(TARGET_LIBS_OS "${TARGET_LIBS_OS} ${LLVM_SYSTEM_LIBS}") - -if (${APPLE}) - set(TARGET_LIBS_OS "${TARGET_LIBS_OS} ncurses") -else() - + set(TARGET_LIBS_OS " -lbacktrace") endif() list(APPEND LLVM_LIBS diff --git a/bin/build.sh b/bin/build.sh index 321bbb8d..521f13d3 100755 --- a/bin/build.sh +++ b/bin/build.sh @@ -44,10 +44,9 @@ cd ../IDE/dist if [[ "$OSTYPE" == "darwin"* ]]; then LIBEXT=dylib - LINKOPTS="-Wl,-rpath -Wl,@executable_path" + LINKOPTS="-Wl,-no_compact_unwind -Wl,-rpath -Wl,@executable_path" else - LIBEXT=so - #LINKOPTS="-ldl -lpthread -ltinfo -Wl,-rpath -Wl,\$ORIGIN" + LIBEXT=so LINKOPTS="-ldl -lpthread -Wl,-rpath -Wl,\$ORIGIN" fi @@ -67,8 +66,6 @@ echo Building BeefBuild_bootd ../../jbuild_d/Debug/bin/BeefBoot --out="BeefBuild_bootd" --src=../src --src=../../BeefBuild/src --src=../../BeefLibs/corlib/src --src=../../BeefLibs/Beefy2D/src --define=CLI --define=DEBUG --startup=BeefBuild.Program --linkparams="./libBeefRT_d.a ./libIDEHelper_d.$LIBEXT ./libBeefySysLib_d.$LIBEXT $(< ../../IDE/dist/IDEHelper_libs_d.txt) $LINKOPTS" echo Building BeefBuild_d ./BeefBuild_bootd -clean -proddir=../../BeefBuild -config=Debug -#./BeefBuild_d -proddir=../../TestApp -#../../TestApp/build/Debug_Linux64/TestApp/TestApp echo Testing IDEHelper/Tests in BeefBuild_d ./BeefBuild_d -proddir=../../IDEHelper/Tests -test @@ -78,7 +75,5 @@ echo Building BeefBuild_boot ../../jbuild/Release/bin/BeefBoot --out="BeefBuild_boot" --src=../src --src=../../BeefBuild/src --src=../../BeefLibs/corlib/src --src=../../BeefLibs/Beefy2D/src --define=CLI --startup=BeefBuild.Program --linkparams="./libBeefRT.a ./libIDEHelper.$LIBEXT ./libBeefySysLib.$LIBEXT $(< ../../IDE/dist/IDEHelper_libs.txt) $LINKOPTS" echo Building BeefBuild ./BeefBuild_boot -clean -proddir=../../BeefBuild -config=Release -#./BeefBuild_d -proddir=../../TestApp -#../../TestApp/build/Debug_Linux64/TestApp/TestApp echo Testing IDEHelper/Tests in BeefBuild ./BeefBuild -proddir=../../IDEHelper/Tests -test