From 6f33953861430882d318b6b96f7e59b06b6a4d4c Mon Sep 17 00:00:00 2001 From: Zion Nimchuk Date: Tue, 5 Sep 2017 15:29:46 -0700 Subject: [PATCH] Add option to build using llvm shared libs and document other cmake options --- CMakeLists.txt | 6 ++++-- README.md | 8 ++++++++ rpcs3/CMakeLists.txt | 13 ++++++++++--- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 89bc070fc5..59fb4d80dc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,9 @@ cmake_minimum_required(VERSION 3.0.2) -option(WITH_GDB "WITH_GDB" OFF) -option(WITHOUT_LLVM "WITHOUT_LLVM" OFF) +option(WITH_GDB "Build RPCS3 with GNU GDB debugger support." OFF) +option(WITHOUT_LLVM "Build RPCS3 without LLVM (not recommended)." OFF) +option(USE_SHARED_LLVM_LIBS "Link against shared LLVM libs, instead of statically. +Only recommended on Gentoo. May interfere with mesa driver and make RPCS3 non-functional." OFF) if (WITH_GDB) add_definitions(-DWITH_GDB_DEBUGGER) diff --git a/README.md b/README.md index b902306240..0a5fba6f8f 100644 --- a/README.md +++ b/README.md @@ -81,6 +81,14 @@ Build against the shared libpng instead of using the builtin one. libpng 1.6+ hi - ```-DUSE_SYSTEM_FFMPEG=ON/OFF``` (default = *OFF*)
Build against the shared ffmpeg libraries instead of using the builtin patched version. Try this if the builtin version breaks the OpenGL renderer for you. +- ```-DUSE_SHARED_LLVM_LIBS=ON/OFF``` (default = *OFF*)
+This builds against the shared LLVM libs, rather than the static ones. This may interfere with Mesa and render RPCS3 non-functional. Only recommended on gentoo. + +- ```-DWITHOUT_LLVM=ON/OFF``` (default = *OFF*)
+This forces RPCS3 to build without LLVM, not recommended. + +- ```-DWITH_GDB=ON/OFF``` (default = *OFF*)
+This Builds RPCS3 with support for debugging PS3 games using gdb." ## License diff --git a/rpcs3/CMakeLists.txt b/rpcs3/CMakeLists.txt index c07f7181f1..5d986b4d51 100644 --- a/rpcs3/CMakeLists.txt +++ b/rpcs3/CMakeLists.txt @@ -254,10 +254,17 @@ if(NOT LLVM_FOUND) else() add_definitions(${LLVM_DEFINITIONS}) add_definitions(-DLLVM_AVAILABLE) - if (CMAKE_BUILD_TYPE STREQUAL "Release") - llvm_map_components_to_libnames(LLVM_LIBS mcjit vectorize ipo x86codegen x86disassembler) + + # Gentoo doesn't provide static LLVM libraries, so we need an option to use the shared ones. + if (USE_SHARED_LLVM_LIBS) + Message("WARNING! Linking against shared LLVM libs may conflict with your system's mesa, rendering RPCS3 non-functional!") + set(LLVM_LIBS LLVM) else() - llvm_map_components_to_libnames(LLVM_LIBS mcjit vectorize ipo x86codegen x86disassembler mcdisassembler) + if (CMAKE_BUILD_TYPE STREQUAL "Release") + llvm_map_components_to_libnames(LLVM_LIBS mcjit vectorize ipo x86codegen x86disassembler) + else() + llvm_map_components_to_libnames(LLVM_LIBS mcjit vectorize ipo x86codegen x86disassembler mcdisassembler) + endif() endif() if (NOT MSVC)