Add option to build using llvm shared libs and document other cmake options

This commit is contained in:
Zion Nimchuk 2017-09-05 15:29:46 -07:00 committed by Ani
parent 8e955297ef
commit d2cae96e8d
3 changed files with 22 additions and 5 deletions

View file

@ -1,7 +1,9 @@
cmake_minimum_required(VERSION 3.0.2) cmake_minimum_required(VERSION 3.0.2)
option(WITH_GDB "WITH_GDB" OFF) option(WITH_GDB "Build RPCS3 with GNU GDB debugger support." OFF)
option(WITHOUT_LLVM "WITHOUT_LLVM" 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) if (WITH_GDB)
add_definitions(-DWITH_GDB_DEBUGGER) add_definitions(-DWITH_GDB_DEBUGGER)

View file

@ -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*) </br> - ```-DUSE_SYSTEM_FFMPEG=ON/OFF``` (default = *OFF*) </br>
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. 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*) </br>
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*) </br>
This forces RPCS3 to build without LLVM, not recommended.
- ```-DWITH_GDB=ON/OFF``` (default = *OFF*) </br>
This Builds RPCS3 with support for debugging PS3 games using gdb."
## License ## License

View file

@ -254,10 +254,17 @@ if(NOT LLVM_FOUND)
else() else()
add_definitions(${LLVM_DEFINITIONS}) add_definitions(${LLVM_DEFINITIONS})
add_definitions(-DLLVM_AVAILABLE) 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() 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() endif()
if (NOT MSVC) if (NOT MSVC)