mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-10 08:51:28 +12:00
Make it possible to build rpcs3 via cmake/vs2015 combo.
This commit is contained in:
parent
e91589cab5
commit
ddff65d288
3 changed files with 39 additions and 11 deletions
|
@ -35,6 +35,8 @@ if (NOT MSVC)
|
||||||
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O1 -D_NDEBUG")
|
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O1 -D_NDEBUG")
|
||||||
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -O1 -g -D_NDEBUG")
|
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -O1 -g -D_NDEBUG")
|
||||||
add_definitions(-msse -msse2 -mcx16 -mssse3)
|
add_definitions(-msse -msse2 -mcx16 -mssse3)
|
||||||
|
else()
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /D _CRT_SECURE_NO_DEPRECATE=1 /D _CRT_NON_CONFORMING_SWPRINTFS=1 /D _SCL_SECURE_NO_WARNINGS=1")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
|
@ -63,19 +65,20 @@ EndIf()
|
||||||
set(CMAKE_MODULE_PATH "${RPCS3_SRC_DIR}/cmake_modules")
|
set(CMAKE_MODULE_PATH "${RPCS3_SRC_DIR}/cmake_modules")
|
||||||
# TODO: do real installation, including copying directory structure
|
# TODO: do real installation, including copying directory structure
|
||||||
set(EXECUTABLE_OUTPUT_PATH "${PROJECT_BINARY_DIR}/../bin")
|
set(EXECUTABLE_OUTPUT_PATH "${PROJECT_BINARY_DIR}/../bin")
|
||||||
#include(cotire)
|
|
||||||
|
|
||||||
add_definitions(-DGL_GLEXT_PROTOTYPES)
|
if(NOT WIN32)
|
||||||
add_definitions(-DGLX_GLXEXT_PROTOTYPES)
|
add_definitions(-DGL_GLEXT_PROTOTYPES)
|
||||||
|
add_definitions(-DGLX_GLXEXT_PROTOTYPES)
|
||||||
|
endif()
|
||||||
|
|
||||||
find_package(wxWidgets COMPONENTS core base net aui gl xml REQUIRED)
|
find_package(wxWidgets COMPONENTS core base net aui gl xml REQUIRED)
|
||||||
if(WIN32)
|
if(NOT WIN32)
|
||||||
find_package(GLEW REQUIRED)
|
find_package(GLEW REQUIRED)
|
||||||
endif()
|
endif()
|
||||||
find_package(OpenGL REQUIRED)
|
find_package(OpenGL REQUIRED)
|
||||||
#find_package(ZLIB REQUIRED) test
|
message(STATUS "OPENGL = ${OPENGL_LIBRARIES}")
|
||||||
|
message(STATUS "OPENGL_INCL = ${OPENGL_INCLUDE_DIR}")
|
||||||
find_package(OpenAL REQUIRED)
|
find_package(OpenAL REQUIRED)
|
||||||
#find_package(LLVM REQUIRED CONFIG)
|
|
||||||
find_package(LLVM CONFIG)
|
find_package(LLVM CONFIG)
|
||||||
|
|
||||||
include("${wxWidgets_USE_FILE}")
|
include("${wxWidgets_USE_FILE}")
|
||||||
|
@ -108,9 +111,14 @@ if(LLVM_FOUND)
|
||||||
else()
|
else()
|
||||||
llvm_map_components_to_libnames(LLVM_LIBS mcjit vectorize x86codegen x86disassembler mcdisassembler)
|
llvm_map_components_to_libnames(LLVM_LIBS mcjit vectorize x86codegen x86disassembler mcdisassembler)
|
||||||
endif()
|
endif()
|
||||||
|
if(MSVC)
|
||||||
|
set_source_files_properties(${RPCS3_SRC_DIR}/Emu/Cell/PPULLVMRecompiler.cpp PROPERTIES COMPILE_FLAGS /GR-)
|
||||||
|
else()
|
||||||
|
set_source_files_properties(${RPCS3_SRC_DIR}/Emu/Cell/PPULLVMRecompiler.cpp PROPERTIES COMPILE_FLAGS -fno-rtti)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
link_directories("${RPCS3_SRC_DIR}/../ffmpeg/${PLATFORM_ARCH}/lib")
|
link_directories("${RPCS3_SRC_DIR}/../ffmpeg/${PLATFORM_ARCH}/lib" "${RPCS3_SRC_DIR}/../asmjit/")
|
||||||
|
|
||||||
get_property(dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
|
get_property(dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
|
||||||
foreach(dir ${dirs})
|
foreach(dir ${dirs})
|
||||||
|
@ -131,12 +139,28 @@ RPCS3_SRC
|
||||||
)
|
)
|
||||||
|
|
||||||
list(REMOVE_ITEM RPCS3_SRC ${RPCS3_SRC_DIR}/../Utilities/simpleini/ConvertUTF.c)
|
list(REMOVE_ITEM RPCS3_SRC ${RPCS3_SRC_DIR}/../Utilities/simpleini/ConvertUTF.c)
|
||||||
set_source_files_properties(${RPCS3_SRC_DIR}/Emu/Cell/PPULLVMRecompiler.cpp PROPERTIES COMPILE_FLAGS -fno-rtti)
|
|
||||||
|
|
||||||
add_executable(rpcs3 ${RPCS3_SRC})
|
add_executable(rpcs3 ${RPCS3_SRC})
|
||||||
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -L${CMAKE_CURRENT_BINARY_DIR}/../asmjit/") #hack because the asmjit cmake file force fno exceptions
|
if(NOT MSVC)
|
||||||
target_link_libraries(rpcs3 asmjit.a ${wxWidgets_LIBRARIES} ${OPENAL_LIBRARY} ${GLEW_LIBRARY} ${OPENGL_LIBRARIES} libavformat.a libavcodec.a libavutil.a libswresample.a libswscale.a ${ZLIB_LIBRARIES} ${LLVM_LIBS} ${ADDITIONAL_LIBS} )
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -L${CMAKE_CURRENT_BINARY_DIR}/../asmjit/") #hack because the asmjit cmake file force fno exceptions upd: not sure if vs2015 build is affected
|
||||||
|
else()
|
||||||
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:WINDOWS /NODEFAULTLIB:libc.lib /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libcd.lib /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:msvcrtd.lib")
|
||||||
|
endif()
|
||||||
|
if(WIN32) # I'm not sure we need all of these libs, but we link them in vs
|
||||||
|
target_link_libraries(rpcs3 odbc32.lib odbccp32.lib comctl32.lib ws2_32.lib shlwapi.lib winmm.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib)
|
||||||
|
if(LLVM_FOUND)
|
||||||
|
target_link_libraries(rpcs3 asmjit.lib xaudio2.lib ${wxWidgets_LIBRARIES} ${OPENAL_LIBRARY} avformat.lib avcodec.lib avutil.lib swresample.lib swscale.lib ${LLVM_LIBS} ${ADDITIONAL_LIBS})
|
||||||
|
else()
|
||||||
|
target_link_libraries(rpcs3 asmjit.lib xaudio2.lib ${wxWidgets_LIBRARIES} ${OPENAL_LIBRARY} avformat.lib avcodec.lib avutil.lib swresample.lib swscale.lib ${ADDITIONAL_LIBS})
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
if(LLVM_FOUND)
|
||||||
|
target_link_libraries(rpcs3 asmjit.a ${wxWidgets_LIBRARIES} ${OPENAL_LIBRARY} ${GLEW_LIBRARY} ${OPENGL_LIBRARIES} libavformat.a libavcodec.a libavutil.a libswresample.a libswscale.a ${LLVM_LIBS} ${ADDITIONAL_LIBS})
|
||||||
|
else()
|
||||||
|
target_link_libraries(rpcs3 asmjit.a ${wxWidgets_LIBRARIES} ${OPENAL_LIBRARY} ${GLEW_LIBRARY} ${OPENGL_LIBRARIES} libavformat.a libavcodec.a libavutil.a libswresample.a libswscale.a ${ADDITIONAL_LIBS})
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
set_target_properties(rpcs3 PROPERTIES COTIRE_CXX_PREFIX_HEADER_INIT "${RPCS3_SRC_DIR}/stdafx.h")
|
set_target_properties(rpcs3 PROPERTIES COTIRE_CXX_PREFIX_HEADER_INIT "${RPCS3_SRC_DIR}/stdafx.h")
|
||||||
cotire(rpcs3)
|
cotire(rpcs3)
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
|
#ifdef LLVM_AVAILABLE
|
||||||
#include "Utilities/Log.h"
|
#include "Utilities/Log.h"
|
||||||
#include "Emu/System.h"
|
#include "Emu/System.h"
|
||||||
#include "Emu/Cell/PPULLVMRecompiler.h"
|
#include "Emu/Cell/PPULLVMRecompiler.h"
|
||||||
|
@ -737,3 +738,4 @@ u32 ppu_recompiler_llvm::CPUHybridDecoderRecompiler::ExecuteTillReturn(PPUThread
|
||||||
bool ppu_recompiler_llvm::CPUHybridDecoderRecompiler::PollStatus(PPUThread * ppu_state) {
|
bool ppu_recompiler_llvm::CPUHybridDecoderRecompiler::PollStatus(PPUThread * ppu_state) {
|
||||||
return ppu_state->check_status();
|
return ppu_state->check_status();
|
||||||
}
|
}
|
||||||
|
#endif // LLVM_AVAILABLE
|
|
@ -1,4 +1,5 @@
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
|
#ifdef LLVM_AVAILABLE
|
||||||
#include "Utilities/Log.h"
|
#include "Utilities/Log.h"
|
||||||
#include "Emu/Cell/PPULLVMRecompiler.h"
|
#include "Emu/Cell/PPULLVMRecompiler.h"
|
||||||
#include "llvm/Support/Host.h"
|
#include "llvm/Support/Host.h"
|
||||||
|
@ -982,3 +983,4 @@ void Compiler::RunAllTests() {
|
||||||
Emu.GetIdManager().remove<PPUThread>(s_ppu_state->get_id());
|
Emu.GetIdManager().remove<PPUThread>(s_ppu_state->get_id());
|
||||||
#endif // PPU_LLVM_RECOMPILER_UNIT_TESTS
|
#endif // PPU_LLVM_RECOMPILER_UNIT_TESTS
|
||||||
}
|
}
|
||||||
|
#endif // LLVM_AVAILABLE
|
Loading…
Add table
Add a link
Reference in a new issue