From 672be8a8f76a0deb9c1bd5c651edccbc3144240b Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Thu, 21 May 2020 12:55:58 -0700 Subject: [PATCH] Linux fixes, now using a IDEHelper_libs.txt file --- BeefBoot/CMakeLists.txt | 12 ++- BeefBuild/BeefProj.toml | 12 ++- BeefRT/CMakeLists.txt | 22 ++---- BeefySysLib/CMakeLists.txt | 6 ++ IDEHelper/CMakeLists.txt | 146 ++++++++++++++++++++++--------------- bin/build.sh | 4 +- 6 files changed, 123 insertions(+), 79 deletions(-) diff --git a/BeefBoot/CMakeLists.txt b/BeefBoot/CMakeLists.txt index e15857a6..aeda93d8 100644 --- a/BeefBoot/CMakeLists.txt +++ b/BeefBoot/CMakeLists.txt @@ -133,11 +133,19 @@ add_executable(${PROJECT_NAME} ${SRC_FILES} ) +execute_process( + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/../extern/llvm_linux_8_0_0/bin/llvm-config --system-libs --link-static + OUTPUT_VARIABLE LLVM_SYSTEM_LIBS + OUTPUT_STRIP_TRAILING_WHITESPACE +) + if (${APPLE}) set(TARGET_LIBS_OS "") else() - #set(TARGET_LIBS_OS "tinfo") - set(TARGET_LIBS_OS "-Xlinker --no-demangle -v") + #set(TARGET_LIBS_OS "curses") + #set(TARGET_LIBS_OS "-Xlinker --no-demangle -v") + + set(TARGET_LIBS_OS "${LLVM_SYSTEM_LIBS}") endif() # Link with other dependencies. diff --git a/BeefBuild/BeefProj.toml b/BeefBuild/BeefProj.toml index f88e5583..695faa74 100644 --- a/BeefBuild/BeefProj.toml +++ b/BeefBuild/BeefProj.toml @@ -27,7 +27,8 @@ PreprocessorMacros = ["DEBUG", "CLI"] [Configs.Debug.macOS] TargetDirectory = "$(WorkspaceDir)/../IDE/dist" TargetName = "$(ProjectName)_d" -OtherLinkFlags = "./libBeefRT_d.a ./libIDEHelper_d.dylib ./libBeefySysLib_d.dylib ../../extern/llvm_linux_8_0_0/lib/libLLVMCore.a ../../extern/llvm_linux_8_0_0/lib/libLLVMMC.a ../../extern/llvm_linux_8_0_0/lib/libLLVMMCParser.a ../../extern/llvm_linux_8_0_0/lib/libLLVMCodeGen.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86Disassembler.a ../../extern/llvm_linux_8_0_0/lib/libLLVMMCDisassembler.a ../../extern/llvm_linux_8_0_0/lib/libLLVMSupport.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86Info.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86Utils.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86AsmPrinter.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86Desc.a ../../extern/llvm_linux_8_0_0/lib/libLLVMObject.a ../../extern/llvm_linux_8_0_0/lib/libLLVMBitReader.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAsmParser.a ../../extern/llvm_linux_8_0_0/lib/libLLVMTarget.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86CodeGen.a ../../extern/llvm_linux_8_0_0/lib/libLLVMScalarOpts.a ../../extern/llvm_linux_8_0_0/lib/libLLVMInstCombine.a ../../extern/llvm_linux_8_0_0/lib/libLLVMSelectionDAG.a ../../extern/llvm_linux_8_0_0/lib/libLLVMProfileData.a ../../extern/llvm_linux_8_0_0/lib/libLLVMTransformUtils.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAnalysis.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86AsmParser.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAsmPrinter.a ../../extern/llvm_linux_8_0_0/lib/libLLVMBitWriter.a ../../extern/llvm_linux_8_0_0/lib/libLLVMVectorize.a ../../extern/llvm_linux_8_0_0/lib/libLLVMipo.a ../../extern/llvm_linux_8_0_0/lib/libLLVMInstrumentation.a ../../extern/llvm_linux_8_0_0/lib/libLLVMDebugInfoDWARF.a ../../extern/llvm_linux_8_0_0/lib/libLLVMDebugInfoPDB.a ../../extern/llvm_linux_8_0_0/lib/libLLVMDebugInfoCodeView.a ../../extern/llvm_linux_8_0_0/lib/libLLVMGlobalISel.a ../../extern/llvm_linux_8_0_0/lib/libLLVMBinaryFormat.a ../../extern/llvm_linux_8_0_0/lib/libLLVMDemangle.a -Wl,-rpath -Wl,@executable_path" +PreBuildCmds = ["ReadFile(\"$(WorkspaceDir)/../IDE/dist/IDEHelper_libs_d.txt\", \"IDEHelperLibs\")"] +OtherLinkFlags = "./libBeefRT_d.a ./libIDEHelper_d.dylib ./libBeefySysLib_d.dylib $(Var IDEHelperLibs) -Wl,-rpath -Wl,@executable_path" CLibType = "Dynamic" DebugCommandArguments = "-proddir=..\\ -config=Debug -platform=Win64" DebugWorkingDirectory = "$(WorkspaceDir)/../IDE/dist" @@ -36,7 +37,8 @@ PreprocessorMacros = ["DEBUG", "CLI"] [Configs.Debug.Linux64] TargetDirectory = "$(WorkspaceDir)/../IDE/dist" TargetName = "$(ProjectName)_d" -OtherLinkFlags = "$(LinkFlags) ./libIDEHelper_d.so ./libBeefySysLib_d.so ../../extern/llvm_linux_8_0_0/lib/libLLVMCore.a ../../extern/llvm_linux_8_0_0/lib/libLLVMMC.a ../../extern/llvm_linux_8_0_0/lib/libLLVMMCParser.a ../../extern/llvm_linux_8_0_0/lib/libLLVMCodeGen.a ../../extern/llvm_linux_8_0_0/lib/libLLVMMCDisassembler.a ../../extern/llvm_linux_8_0_0/lib/libLLVMObject.a ../../extern/llvm_linux_8_0_0/lib/libLLVMBitReader.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAsmParser.a ../../extern/llvm_linux_8_0_0/lib/libLLVMTarget.a ../../extern/llvm_linux_8_0_0/lib/libLLVMScalarOpts.a ../../extern/llvm_linux_8_0_0/lib/libLLVMInstCombine.a ../../extern/llvm_linux_8_0_0/lib/libLLVMSelectionDAG.a ../../extern/llvm_linux_8_0_0/lib/libLLVMProfileData.a ../../extern/llvm_linux_8_0_0/lib/libLLVMTransformUtils.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAnalysis.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAsmPrinter.a ../../extern/llvm_linux_8_0_0/lib/libLLVMBitWriter.a ../../extern/llvm_linux_8_0_0/lib/libLLVMVectorize.a ../../extern/llvm_linux_8_0_0/lib/libLLVMipo.a ../../extern/llvm_linux_8_0_0/lib/libLLVMInstrumentation.a ../../extern/llvm_linux_8_0_0/lib/libLLVMDebugInfoDWARF.a ../../extern/llvm_linux_8_0_0/lib/libLLVMDebugInfoPDB.a ../../extern/llvm_linux_8_0_0/lib/libLLVMDebugInfoCodeView.a ../../extern/llvm_linux_8_0_0/lib/libLLVMGlobalISel.a ../../extern/llvm_linux_8_0_0/lib/libLLVMBinaryFormat.a ../../extern/llvm_linux_8_0_0/lib/libLLVMIRReader.a ../../extern/llvm_linux_8_0_0/lib/libLLVMLinker.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAggressiveInstCombine.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86Info.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86Utils.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86AsmPrinter.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86Desc.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86CodeGen.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86AsmParser.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86Disassembler.a ../../extern/llvm_linux_8_0_0/lib/libLLVMARMInfo.a ../../extern/llvm_linux_8_0_0/lib/libLLVMARMUtils.a ../../extern/llvm_linux_8_0_0/lib/libLLVMARMAsmPrinter.a ../../extern/llvm_linux_8_0_0/lib/libLLVMARMDesc.a ../../extern/llvm_linux_8_0_0/lib/libLLVMARMCodeGen.a ../../extern/llvm_linux_8_0_0/lib/libLLVMARMAsmParser.a ../../extern/llvm_linux_8_0_0/lib/libLLVMARMDisassembler.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAArch64Info.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAArch64Utils.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAArch64AsmPrinter.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAArch64Desc.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAArch64CodeGen.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAArch64AsmParser.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAArch64Disassembler.a ../../extern/llvm_linux_8_0_0/lib/libLLVMSupport.a ../../extern/llvm_linux_8_0_0/lib/libLLVMDemangle.a -Wl,-rpath -Wl,$ORIGIN" +PreBuildCmds = ["ReadFile(\"$(WorkspaceDir)/../IDE/dist/IDEHelper_libs_d.txt\", \"IDEHelperLibs\")"] +OtherLinkFlags = "$(LinkFlags) ./libIDEHelper_d.so ./libBeefySysLib_d.so $(Var IDEHelperLibs) -Wl,-rpath -Wl,$ORIGIN" CLibType = "Dynamic" DebugCommandArguments = "-proddir=..\\ -config=Debug -platform=Win64" DebugWorkingDirectory = "$(WorkspaceDir)/../IDE/dist" @@ -44,7 +46,8 @@ PreprocessorMacros = ["DEBUG", "CLI"] [Configs.Release.macOS] TargetDirectory = "$(WorkspaceDir)/../IDE/dist" -OtherLinkFlags = "./libBeefRT.a ./libIDEHelper.dylib ./libBeefySysLib.dylib ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMCore.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMMC.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMMCParser.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMCodeGen.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86Disassembler.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMMCDisassembler.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMSupport.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86Info.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86Utils.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86AsmPrinter.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86Desc.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMObject.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMBitReader.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAsmParser.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMTarget.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86CodeGen.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMScalarOpts.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMInstCombine.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMSelectionDAG.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMProfileData.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMTransformUtils.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAnalysis.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86AsmParser.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAsmPrinter.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMBitWriter.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMVectorize.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMipo.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMInstrumentation.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMDebugInfoDWARF.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMDebugInfoPDB.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMDebugInfoCodeView.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMGlobalISel.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMBinaryFormat.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMDemangle.a -Wl,-rpath -Wl,@executable_path" +PreBuildCmds = ["ReadFile(\"$(WorkspaceDir)/../IDE/dist/IDEHelper_libs.txt\", \"IDEHelperLibs\")"] +OtherLinkFlags = "./libBeefRT.a ./libIDEHelper.dylib ./libBeefySysLib.dylib $(Var IDEHelperLibs) -Wl,-rpath -Wl,@executable_path" CLibType = "Dynamic" DebugCommandArguments = "-proddir=..\\ -config=Debug -platform=Win64" DebugWorkingDirectory = "$(WorkspaceDir)/../IDE/dist" @@ -52,7 +55,8 @@ PreprocessorMacros = ["CLI"] [Configs.Release.Linux64] TargetDirectory = "$(WorkspaceDir)/../IDE/dist" -OtherLinkFlags = "$(LinkFlags) ./libIDEHelper.so ./libBeefySysLib.so ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMCore.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMMC.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMMCParser.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMCodeGen.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMMCDisassembler.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMObject.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMBitReader.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAsmParser.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMTarget.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMScalarOpts.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMInstCombine.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMSelectionDAG.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMProfileData.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMTransformUtils.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAnalysis.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAsmPrinter.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMBitWriter.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMVectorize.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMipo.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMInstrumentation.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMDebugInfoDWARF.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMDebugInfoPDB.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMDebugInfoCodeView.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMGlobalISel.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMBinaryFormat.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMIRReader.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMLinker.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAggressiveInstCombine.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86Info.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86Utils.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86AsmPrinter.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86Desc.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86CodeGen.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86AsmParser.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86Disassembler.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMARMInfo.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMARMUtils.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMARMAsmPrinter.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMARMDesc.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMARMCodeGen.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMARMAsmParser.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMARMDisassembler.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAArch64Info.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAArch64Utils.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAArch64AsmPrinter.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAArch64Desc.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAArch64CodeGen.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAArch64AsmParser.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAArch64Disassembler.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMSupport.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMDemangle.a -Wl,-rpath -Wl,$ORIGIN" +PreBuildCmds = ["ReadFile(\"$(WorkspaceDir)/../IDE/dist/IDEHelper_libs.txt\", \"IDEHelperLibs\")"] +OtherLinkFlags = "$(LinkFlags) ./libIDEHelper.so ./libBeefySysLib.so $(Var IDEHelperLibs) -Wl,-rpath -Wl,$ORIGIN" CLibType = "Dynamic" DebugCommandArguments = "-proddir=..\\ -config=Debug -platform=Win64" DebugWorkingDirectory = "$(WorkspaceDir)/../IDE/dist" diff --git a/BeefRT/CMakeLists.txt b/BeefRT/CMakeLists.txt index 3f6016cb..95e324af 100644 --- a/BeefRT/CMakeLists.txt +++ b/BeefRT/CMakeLists.txt @@ -43,15 +43,6 @@ if (HAVE_BACKTRACE_HEADERS) add_definitions(-DBFP_HAS_BACKTRACE) endif () -#find_package(Backtrace) -#if(Backtrace_FOUND) -# include_directories(${Backtrace_INCLUDE_DIRS}) -# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Backtrace_LIBRARIES}") -# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${Backtrace_LIBRARIES}") -# add_definitions(-DBFP_HAS_BACKTRACE) -# add_definitions(-DBFP_BACKTRACE_PATH="${Backtrace_HEADER}") -#endif(Backtrace_FOUND) - if (${IOS}) include_directories( . @@ -285,15 +276,18 @@ add_library(${PROJECT_NAME} STATIC ${SRC_FILES_OS} ) +set(TARGET_LIBS_OS "") +if (HAVE_BACKTRACE_HEADERS) + set(TARGET_LIBS_OS "backtrace") +endif() + if (${APPLE}) target_link_libraries(${PROJECT_NAME} pthread ffi) -elseif (${ANDROID}) - set(TARGET_LIBS_OS "") +elseif (${ANDROID}) #target_link_libraries(${PROJECT_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/../BeefySysLib/third_party/libffi/aarch64-unknown-linux-gnu/.libs/libffi.a) #target_link_libraries(${PROJECT_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/../BeefySysLib/third_party/libffi/i686-pc-linux-gnu/.libs/libffi.a) -else() - #target_link_libraries(${PROJECT_NAME} pthread ffi backtrace) - target_link_libraries(${PROJECT_NAME} pthread ffi) +else() + target_link_libraries(${PROJECT_NAME} pthread ffi ${TARGET_LIBS_OS}) endif() # Link with other dependencies. diff --git a/BeefySysLib/CMakeLists.txt b/BeefySysLib/CMakeLists.txt index 14175184..09ed390b 100644 --- a/BeefySysLib/CMakeLists.txt +++ b/BeefySysLib/CMakeLists.txt @@ -34,6 +34,12 @@ add_definitions( -DBP_DYNAMIC ) +INCLUDE(CheckIncludeFiles) +CHECK_INCLUDE_FILES(backtrace.h HAVE_BACKTRACE_HEADERS) +if (HAVE_BACKTRACE_HEADERS) + add_definitions(-DBFP_HAS_BACKTRACE) +endif () + set (CMAKE_CXX_STANDARD 11) if (${APPLE}) diff --git a/IDEHelper/CMakeLists.txt b/IDEHelper/CMakeLists.txt index 28b6c4b6..c6920fc4 100644 --- a/IDEHelper/CMakeLists.txt +++ b/IDEHelper/CMakeLists.txt @@ -36,6 +36,12 @@ add_definitions( set (CMAKE_CXX_STANDARD 11) #add_definitions(-D_GLIBCXX_USE_CXX11_ABI=1) +INCLUDE(CheckIncludeFiles) +CHECK_INCLUDE_FILES(backtrace.h HAVE_BACKTRACE_HEADERS) +if (HAVE_BACKTRACE_HEADERS) + add_definitions(-DBFP_HAS_BACKTRACE) +endif () + if (${APPLE}) include_directories( . @@ -182,10 +188,90 @@ add_library(${PROJECT_NAME} SHARED ${SRC_FILES} ) +execute_process( + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/../extern/llvm_linux_8_0_0/bin/llvm-config --system-libs --link-static + OUTPUT_VARIABLE LLVM_SYSTEM_LIBS + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +set(TARGET_LIBS_OS "") +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 "ncurses") + set(TARGET_LIBS_OS "${TARGET_LIBS_OS} ncurses") else() - #set(TARGET_LIBS_OS "backtrace") + +endif() + +list(APPEND LLVM_LIBS + ${LLVM_LIB}/libLLVMCore.a + ${LLVM_LIB}/libLLVMMC.a + ${LLVM_LIB}/libLLVMMCParser.a + ${LLVM_LIB}/libLLVMCodeGen.a + ${LLVM_LIB}/libLLVMMCDisassembler.a + ${LLVM_LIB}/libLLVMObject.a + ${LLVM_LIB}/libLLVMBitReader.a + ${LLVM_LIB}/libLLVMAsmParser.a + ${LLVM_LIB}/libLLVMTarget.a + ${LLVM_LIB}/libLLVMScalarOpts.a + ${LLVM_LIB}/libLLVMInstCombine.a + ${LLVM_LIB}/libLLVMSelectionDAG.a + ${LLVM_LIB}/libLLVMProfileData.a + ${LLVM_LIB}/libLLVMTransformUtils.a + ${LLVM_LIB}/libLLVMAnalysis.a + ${LLVM_LIB}/libLLVMAsmPrinter.a + ${LLVM_LIB}/libLLVMBitWriter.a + ${LLVM_LIB}/libLLVMVectorize.a + ${LLVM_LIB}/libLLVMipo.a + ${LLVM_LIB}/libLLVMInstrumentation.a + ${LLVM_LIB}/libLLVMDebugInfoDWARF.a + ${LLVM_LIB}/libLLVMDebugInfoPDB.a + ${LLVM_LIB}/libLLVMDebugInfoCodeView.a + ${LLVM_LIB}/libLLVMGlobalISel.a + ${LLVM_LIB}/libLLVMBinaryFormat.a + ${LLVM_LIB}/libLLVMIRReader.a + ${LLVM_LIB}/libLLVMLinker.a + ${LLVM_LIB}/libLLVMAggressiveInstCombine.a + + ${LLVM_LIB}/libLLVMX86Info.a + ${LLVM_LIB}/libLLVMX86Utils.a + ${LLVM_LIB}/libLLVMX86AsmPrinter.a + ${LLVM_LIB}/libLLVMX86Desc.a + ${LLVM_LIB}/libLLVMX86CodeGen.a + ${LLVM_LIB}/libLLVMX86AsmParser.a + ${LLVM_LIB}/libLLVMX86Disassembler.a + + ${LLVM_LIB}/libLLVMARMInfo.a + ${LLVM_LIB}/libLLVMARMUtils.a + ${LLVM_LIB}/libLLVMARMAsmPrinter.a + ${LLVM_LIB}/libLLVMARMDesc.a + ${LLVM_LIB}/libLLVMARMCodeGen.a + ${LLVM_LIB}/libLLVMARMAsmParser.a + ${LLVM_LIB}/libLLVMARMDisassembler.a + + ${LLVM_LIB}/libLLVMAArch64Info.a + ${LLVM_LIB}/libLLVMAArch64Utils.a + ${LLVM_LIB}/libLLVMAArch64AsmPrinter.a + ${LLVM_LIB}/libLLVMAArch64Desc.a + ${LLVM_LIB}/libLLVMAArch64CodeGen.a + ${LLVM_LIB}/libLLVMAArch64AsmParser.a + ${LLVM_LIB}/libLLVMAArch64Disassembler.a + + ${LLVM_LIB}/libLLVMSupport.a + ${LLVM_LIB}/libLLVMDemangle.a) + +FOREACH (lib ${LLVM_LIBS}) + string(APPEND TARGET_LIBS_OS " " ${lib}) +ENDFOREACH() + +if (CMAKE_BUILD_TYPE STREQUAL "Debug" ) + FILE(WRITE "${CMAKE_CURRENT_SOURCE_DIR}/../IDE/dist/IDEHelper_libs_d.txt" ${TARGET_LIBS_OS}) +else() + FILE(WRITE "${CMAKE_CURRENT_SOURCE_DIR}/../IDE/dist/IDEHelper_libs.txt" ${TARGET_LIBS_OS}) endif() # Link with other dependencies. @@ -193,60 +279,6 @@ if(MSVC) target_link_libraries(${PROJECT_NAME} BeefySysLib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib LLVMX86Disassembler.lib LLVMMCDisassembler.lib LLVMSupport.lib LLVMX86Info.lib LLVMX86Utils.lib LLVMX86AsmPrinter.lib LLVMX86Desc.lib %(AdditionalDependencies) LLVMMC.lib LLVMObject.lib LLVMCore.lib LLVMBitReader.lib LLVMAsmParser.lib LLVMMCParser.lib LLVMCodeGen.lib LLVMTarget.lib LLVMX86CodeGen.lib LLVMScalarOpts.lib LLVMInstCombine.lib LLVMSelectionDAG.lib LLVMProfileData.lib LLVMTransformUtils.lib LLVMAnalysis.lib LLVMX86AsmParser.lib LLVMAsmPrinter.lib LLVMBitWriter.lib LLVMVectorize.lib LLVMipo.lib LLVMInstrumentation.lib LLVMDebugInfoDWARF.lib LLVMDebugInfoPDB.lib LLVMDebugInfoCodeView.lib LLVMGlobalISel.lib LLVMBinaryFormat.lib LLVMAggressiveInstCombine.lib libcurl_a.lib) else() target_link_libraries(${PROJECT_NAME} BeefySysLib hunspell pthread dl ${TARGET_LIBS_OS} - ${LLVM_LIB}/libLLVMCore.a - ${LLVM_LIB}/libLLVMMC.a - ${LLVM_LIB}/libLLVMMCParser.a - ${LLVM_LIB}/libLLVMCodeGen.a - ${LLVM_LIB}/libLLVMMCDisassembler.a - ${LLVM_LIB}/libLLVMObject.a - ${LLVM_LIB}/libLLVMBitReader.a - ${LLVM_LIB}/libLLVMAsmParser.a - ${LLVM_LIB}/libLLVMTarget.a - ${LLVM_LIB}/libLLVMScalarOpts.a - ${LLVM_LIB}/libLLVMInstCombine.a - ${LLVM_LIB}/libLLVMSelectionDAG.a - ${LLVM_LIB}/libLLVMProfileData.a - ${LLVM_LIB}/libLLVMTransformUtils.a - ${LLVM_LIB}/libLLVMAnalysis.a - ${LLVM_LIB}/libLLVMAsmPrinter.a - ${LLVM_LIB}/libLLVMBitWriter.a - ${LLVM_LIB}/libLLVMVectorize.a - ${LLVM_LIB}/libLLVMipo.a - ${LLVM_LIB}/libLLVMInstrumentation.a - ${LLVM_LIB}/libLLVMDebugInfoDWARF.a - ${LLVM_LIB}/libLLVMDebugInfoPDB.a - ${LLVM_LIB}/libLLVMDebugInfoCodeView.a - ${LLVM_LIB}/libLLVMGlobalISel.a - ${LLVM_LIB}/libLLVMBinaryFormat.a - ${LLVM_LIB}/libLLVMIRReader.a - ${LLVM_LIB}/libLLVMLinker.a - ${LLVM_LIB}/libLLVMAggressiveInstCombine.a - - ${LLVM_LIB}/libLLVMX86Info.a - ${LLVM_LIB}/libLLVMX86Utils.a - ${LLVM_LIB}/libLLVMX86AsmPrinter.a - ${LLVM_LIB}/libLLVMX86Desc.a - ${LLVM_LIB}/libLLVMX86CodeGen.a - ${LLVM_LIB}/libLLVMX86AsmParser.a - ${LLVM_LIB}/libLLVMX86Disassembler.a - - ${LLVM_LIB}/libLLVMARMInfo.a - ${LLVM_LIB}/libLLVMARMUtils.a - ${LLVM_LIB}/libLLVMARMAsmPrinter.a - ${LLVM_LIB}/libLLVMARMDesc.a - ${LLVM_LIB}/libLLVMARMCodeGen.a - ${LLVM_LIB}/libLLVMARMAsmParser.a - ${LLVM_LIB}/libLLVMARMDisassembler.a - - ${LLVM_LIB}/libLLVMAArch64Info.a - ${LLVM_LIB}/libLLVMAArch64Utils.a - ${LLVM_LIB}/libLLVMAArch64AsmPrinter.a - ${LLVM_LIB}/libLLVMAArch64Desc.a - ${LLVM_LIB}/libLLVMAArch64CodeGen.a - ${LLVM_LIB}/libLLVMAArch64AsmParser.a - ${LLVM_LIB}/libLLVMAArch64Disassembler.a - - ${LLVM_LIB}/libLLVMSupport.a - ${LLVM_LIB}/libLLVMDemangle.a + ) endif() diff --git a/bin/build.sh b/bin/build.sh index 1bd0fdba..321bbb8d 100755 --- a/bin/build.sh +++ b/bin/build.sh @@ -64,7 +64,7 @@ fi ### DEBUG ### 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 ../../extern/llvm_linux_8_0_0/lib/libLLVMCore.a ../../extern/llvm_linux_8_0_0/lib/libLLVMMC.a ../../extern/llvm_linux_8_0_0/lib/libLLVMMCParser.a ../../extern/llvm_linux_8_0_0/lib/libLLVMCodeGen.a ../../extern/llvm_linux_8_0_0/lib/libLLVMMCDisassembler.a ../../extern/llvm_linux_8_0_0/lib/libLLVMObject.a ../../extern/llvm_linux_8_0_0/lib/libLLVMBitReader.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAsmParser.a ../../extern/llvm_linux_8_0_0/lib/libLLVMTarget.a ../../extern/llvm_linux_8_0_0/lib/libLLVMScalarOpts.a ../../extern/llvm_linux_8_0_0/lib/libLLVMInstCombine.a ../../extern/llvm_linux_8_0_0/lib/libLLVMSelectionDAG.a ../../extern/llvm_linux_8_0_0/lib/libLLVMProfileData.a ../../extern/llvm_linux_8_0_0/lib/libLLVMTransformUtils.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAnalysis.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAsmPrinter.a ../../extern/llvm_linux_8_0_0/lib/libLLVMBitWriter.a ../../extern/llvm_linux_8_0_0/lib/libLLVMVectorize.a ../../extern/llvm_linux_8_0_0/lib/libLLVMipo.a ../../extern/llvm_linux_8_0_0/lib/libLLVMInstrumentation.a ../../extern/llvm_linux_8_0_0/lib/libLLVMDebugInfoDWARF.a ../../extern/llvm_linux_8_0_0/lib/libLLVMDebugInfoPDB.a ../../extern/llvm_linux_8_0_0/lib/libLLVMDebugInfoCodeView.a ../../extern/llvm_linux_8_0_0/lib/libLLVMGlobalISel.a ../../extern/llvm_linux_8_0_0/lib/libLLVMBinaryFormat.a ../../extern/llvm_linux_8_0_0/lib/libLLVMIRReader.a ../../extern/llvm_linux_8_0_0/lib/libLLVMLinker.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAggressiveInstCombine.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86Info.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86Utils.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86AsmPrinter.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86Desc.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86CodeGen.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86AsmParser.a ../../extern/llvm_linux_8_0_0/lib/libLLVMX86Disassembler.a ../../extern/llvm_linux_8_0_0/lib/libLLVMARMInfo.a ../../extern/llvm_linux_8_0_0/lib/libLLVMARMUtils.a ../../extern/llvm_linux_8_0_0/lib/libLLVMARMAsmPrinter.a ../../extern/llvm_linux_8_0_0/lib/libLLVMARMDesc.a ../../extern/llvm_linux_8_0_0/lib/libLLVMARMCodeGen.a ../../extern/llvm_linux_8_0_0/lib/libLLVMARMAsmParser.a ../../extern/llvm_linux_8_0_0/lib/libLLVMARMDisassembler.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAArch64Info.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAArch64Utils.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAArch64AsmPrinter.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAArch64Desc.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAArch64CodeGen.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAArch64AsmParser.a ../../extern/llvm_linux_8_0_0/lib/libLLVMAArch64Disassembler.a ../../extern/llvm_linux_8_0_0/lib/libLLVMSupport.a ../../extern/llvm_linux_8_0_0/lib/libLLVMDemangle.a $LINKOPTS" +../../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 @@ -75,7 +75,7 @@ echo Testing IDEHelper/Tests in BeefBuild_d ### RELEASE ### 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 ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMCore.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMMC.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMMCParser.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMCodeGen.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMMCDisassembler.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMObject.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMBitReader.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAsmParser.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMTarget.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMScalarOpts.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMInstCombine.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMSelectionDAG.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMProfileData.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMTransformUtils.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAnalysis.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAsmPrinter.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMBitWriter.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMVectorize.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMipo.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMInstrumentation.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMDebugInfoDWARF.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMDebugInfoPDB.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMDebugInfoCodeView.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMGlobalISel.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMBinaryFormat.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMIRReader.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMLinker.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAggressiveInstCombine.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86Info.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86Utils.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86AsmPrinter.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86Desc.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86CodeGen.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86AsmParser.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMX86Disassembler.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMARMInfo.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMARMUtils.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMARMAsmPrinter.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMARMDesc.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMARMCodeGen.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMARMAsmParser.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMARMDisassembler.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAArch64Info.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAArch64Utils.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAArch64AsmPrinter.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAArch64Desc.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAArch64CodeGen.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAArch64AsmParser.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMAArch64Disassembler.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMSupport.a ../../extern/llvm_linux_rel_8_0_0/lib/libLLVMDemangle.a $LINKOPTS" +../../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