mirror of https://github.com/PCSX2/pcsx2.git
Notify about cross build option upon failure.
Tell the user to use CMAKE_TOOLCHAIN_FILE upon failure. . Cleanup detectOperatingSystem. Should be the same but adding GNU and kFreeBSD from Debian and filtering out pre OS X Apple. . libaio is linux only. Also check for the correct header since aio.h is the POSIX one. Both are in /usr/include/ anyway. Only build core if (Linux AND NOT AIO_FOUND) == false. . Use Unix for GTK and X11. Macs has gtk-quartzs and xquartz or native X11. *BSD, linux, etc should have both.
This commit is contained in:
parent
b42c9defb1
commit
c8c22cf6a0
|
@ -80,7 +80,11 @@ include(TargetArch)
|
||||||
target_architecture(PCSX2_TARGET_ARCHITECTURES)
|
target_architecture(PCSX2_TARGET_ARCHITECTURES)
|
||||||
if(${PCSX2_TARGET_ARCHITECTURES} MATCHES "x86_64" OR ${PCSX2_TARGET_ARCHITECTURES} MATCHES "i386")
|
if(${PCSX2_TARGET_ARCHITECTURES} MATCHES "x86_64" OR ${PCSX2_TARGET_ARCHITECTURES} MATCHES "i386")
|
||||||
if(${PCSX2_TARGET_ARCHITECTURES} MATCHES "x86_64" AND (CMAKE_BUILD_TYPE MATCHES "Release" OR PACKAGE_MODE))
|
if(${PCSX2_TARGET_ARCHITECTURES} MATCHES "x86_64" AND (CMAKE_BUILD_TYPE MATCHES "Release" OR PACKAGE_MODE))
|
||||||
message(FATAL_ERROR "The code for ${PCSX2_TARGET_ARCHITECTURES} support is not ready yet.")
|
message(FATAL_ERROR "
|
||||||
|
The code for ${PCSX2_TARGET_ARCHITECTURES} support is not ready yet.
|
||||||
|
For now compile with -DCMAKE_TOOLCHAIN_FILE=cmake/linux-compiler-i386-multilib.cmake
|
||||||
|
or with
|
||||||
|
--cross-multilib passed to build.sh")
|
||||||
endif()
|
endif()
|
||||||
message(STATUS "Compiling a ${PCSX2_TARGET_ARCHITECTURES} build on a ${CMAKE_HOST_SYSTEM_PROCESSOR} host.")
|
message(STATUS "Compiling a ${PCSX2_TARGET_ARCHITECTURES} build on a ${CMAKE_HOST_SYSTEM_PROCESSOR} host.")
|
||||||
else()
|
else()
|
||||||
|
|
|
@ -7,42 +7,34 @@
|
||||||
# On linux, it also set a flag for specific distribution (ie Fedora)
|
# On linux, it also set a flag for specific distribution (ie Fedora)
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
function(detectOperatingSystem)
|
function(detectOperatingSystem)
|
||||||
# nothing detected yet
|
if(WIN32)
|
||||||
set(MacOSX FALSE PARENT_SCOPE)
|
|
||||||
set(Windows FALSE PARENT_SCOPE)
|
|
||||||
set(Linux FALSE PARENT_SCOPE)
|
|
||||||
set(Fedora FALSE PARENT_SCOPE)
|
|
||||||
|
|
||||||
# check if we are on Linux
|
|
||||||
if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
|
|
||||||
set(Linux TRUE PARENT_SCOPE)
|
|
||||||
|
|
||||||
if (EXISTS /etc/os-release)
|
|
||||||
# Read the file without CR character
|
|
||||||
file(STRINGS /etc/os-release OS_RELEASE)
|
|
||||||
if ("${OS_RELEASE}" MATCHES "^.*ID=fedora.*$")
|
|
||||||
set(Fedora TRUE PARENT_SCOPE)
|
|
||||||
message(STATUS "Build Fedora specific")
|
|
||||||
endif()
|
|
||||||
if ("${OS_RELEASE}" MATCHES "^.*ID=.*suse.*$")
|
|
||||||
set(openSUSE TRUE PARENT_SCOPE)
|
|
||||||
add_definitions(-DopenSUSE)
|
|
||||||
message(STATUS "Build openSUSE specific")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endif(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
|
|
||||||
|
|
||||||
# check if we are on MacOSX
|
|
||||||
if(APPLE)
|
|
||||||
message(WARNING "Mac OS X isn't supported, build will most likely fail")
|
|
||||||
set(MacOSX TRUE PARENT_SCOPE)
|
|
||||||
endif(APPLE)
|
|
||||||
|
|
||||||
# check if we are on Windows
|
|
||||||
if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
|
|
||||||
set(Windows TRUE PARENT_SCOPE)
|
set(Windows TRUE PARENT_SCOPE)
|
||||||
endif(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
|
elseif(UNIX AND APPLE)
|
||||||
endfunction(detectOperatingSystem)
|
# No easy way to filter out iOS.
|
||||||
|
message(WARNING "OS X/iOS isn't supported, the build will most likely fail")
|
||||||
|
set(MacOSX TRUE PARENT_SCOPE)
|
||||||
|
elseif(UNIX)
|
||||||
|
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||||
|
set(Linux TRUE PARENT_SCOPE)
|
||||||
|
if (EXISTS /etc/os-release)
|
||||||
|
# Read the file without CR character
|
||||||
|
file(STRINGS /etc/os-release OS_RELEASE)
|
||||||
|
if("${OS_RELEASE}" MATCHES "^.*ID=fedora.*$")
|
||||||
|
set(Fedora TRUE PARENT_SCOPE)
|
||||||
|
message(STATUS "Build Fedora specific")
|
||||||
|
elseif("${OS_RELEASE}" MATCHES "^.*ID=.*suse.*$")
|
||||||
|
set(openSUSE TRUE PARENT_SCOPE)
|
||||||
|
add_definitions(-DopenSUSE)
|
||||||
|
message(STATUS "Build openSUSE specific")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
elseif(CMAKE_SYSTEM_NAME MATCHES "kFreeBSD")
|
||||||
|
set(kFreeBSD TRUE PARENT_SCOPE)
|
||||||
|
elseif(CMAKE_SYSTEM_NAME STREQUAL "GNU")
|
||||||
|
set(GNU TRUE PARENT_SCOPE)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endfunction()
|
||||||
|
|
||||||
function(write_svnrev_h)
|
function(write_svnrev_h)
|
||||||
find_package(Git)
|
find_package(Git)
|
||||||
|
|
|
@ -32,7 +32,9 @@ include(FindLibc)
|
||||||
|
|
||||||
## Use CheckLib package to find module
|
## Use CheckLib package to find module
|
||||||
include(CheckLib)
|
include(CheckLib)
|
||||||
check_lib(AIO aio aio.h)
|
if(Linux)
|
||||||
|
check_lib(AIO aio libaio.h)
|
||||||
|
endif()
|
||||||
check_lib(EGL EGL EGL/egl.h)
|
check_lib(EGL EGL EGL/egl.h)
|
||||||
check_lib(GLESV2 GLESv2 GLES3/gl3ext.h) # NOTE: looking for GLESv3, not GLESv2
|
check_lib(GLESV2 GLESv2 GLES3/gl3ext.h) # NOTE: looking for GLESv3, not GLESv2
|
||||||
check_lib(PORTAUDIO portaudio portaudio.h pa_linux_alsa.h)
|
check_lib(PORTAUDIO portaudio portaudio.h pa_linux_alsa.h)
|
||||||
|
@ -46,7 +48,7 @@ else()
|
||||||
find_package(SDL)
|
find_package(SDL)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (Linux)
|
if(UNIX)
|
||||||
find_package(X11)
|
find_package(X11)
|
||||||
# Most plugins (if not all) and PCSX2 core need gtk2, so set the required flags
|
# Most plugins (if not all) and PCSX2 core need gtk2, so set the required flags
|
||||||
if (GTK3_API)
|
if (GTK3_API)
|
||||||
|
@ -63,7 +65,7 @@ endif()
|
||||||
#----------------------------------------
|
#----------------------------------------
|
||||||
# Use system include
|
# Use system include
|
||||||
#----------------------------------------
|
#----------------------------------------
|
||||||
if(Linux)
|
if(UNIX)
|
||||||
if(GTK2_FOUND)
|
if(GTK2_FOUND)
|
||||||
include_directories(${GTK2_INCLUDE_DIRS})
|
include_directories(${GTK2_INCLUDE_DIRS})
|
||||||
elseif(GTK3_FOUND)
|
elseif(GTK3_FOUND)
|
||||||
|
|
|
@ -56,7 +56,7 @@ endif()
|
||||||
# -aio
|
# -aio
|
||||||
#---------------------------------------
|
#---------------------------------------
|
||||||
# Common dependancy
|
# Common dependancy
|
||||||
if(wxWidgets_FOUND AND ZLIB_FOUND AND common_libs AND AIO_FOUND)
|
if(wxWidgets_FOUND AND ZLIB_FOUND AND common_libs AND NOT (Linux AND NOT AIO_FOUND))
|
||||||
set(pcsx2_core TRUE)
|
set(pcsx2_core TRUE)
|
||||||
elseif(NOT EXISTS "${CMAKE_SOURCE_DIR}/pcsx2")
|
elseif(NOT EXISTS "${CMAKE_SOURCE_DIR}/pcsx2")
|
||||||
set(pcsx2_core FALSE)
|
set(pcsx2_core FALSE)
|
||||||
|
@ -66,7 +66,7 @@ else()
|
||||||
message(STATUS "${msg_dep_pcsx2}")
|
message(STATUS "${msg_dep_pcsx2}")
|
||||||
endif()
|
endif()
|
||||||
# Linux need also gtk2
|
# Linux need also gtk2
|
||||||
if(Linux AND pcsx2_core AND NOT GTKn_FOUND)
|
if(UNIX AND pcsx2_core AND NOT GTKn_FOUND)
|
||||||
set(pcsx2_core FALSE)
|
set(pcsx2_core FALSE)
|
||||||
message(STATUS "Skip build of pcsx2 core: miss some dependencies")
|
message(STATUS "Skip build of pcsx2 core: miss some dependencies")
|
||||||
message(STATUS "${msg_dep_pcsx2}")
|
message(STATUS "${msg_dep_pcsx2}")
|
||||||
|
|
|
@ -4,4 +4,4 @@
|
||||||
# zerogs plugin opengl
|
# zerogs plugin opengl
|
||||||
if(UNIX)
|
if(UNIX)
|
||||||
add_subdirectory(opengl)
|
add_subdirectory(opengl)
|
||||||
endif(UNIX)
|
endif()
|
||||||
|
|
Loading…
Reference in New Issue