mirror of
https://github.com/blawar/GLideN64.git
synced 2024-07-04 10:03:36 +00:00
569 lines
16 KiB
CMake
569 lines
16 KiB
CMake
cmake_minimum_required(VERSION 3.9)
|
|
|
|
option(EGL "Set to ON if targeting an EGL device" ${EGL})
|
|
option(PANDORA "Set to ON if targeting an OpenPandora" ${PANDORA})
|
|
option(ODROID "Set to ON if targeting an Odroid" ${ODROID})
|
|
option(MUPENPLUSAPI "Set to ON for Mupen64Plus plugin" ${MUPENPLUSAPI})
|
|
option(MUPENPLUSAPI_GLIDENUI "Set to ON for GLideNUI for Mupen64Plus" ${MUPENPLUSAPI_GLIDENUI})
|
|
option(MESA "Set to ON to disable Raspberry Pi autodetection" ${MESA})
|
|
option(VERO4K "Set to ON if targeting a Vero4k" ${VERO4K})
|
|
option(ANDROID "Set to ON if targeting an Android device" ${ANDROID})
|
|
option(GL_PROFILE "Set to ON to turn on GL profiling" ${GL_PROFILE})
|
|
|
|
# run script to generate Revision.h
|
|
set(PATH_REVISION "Revision.h")
|
|
add_custom_command(
|
|
OUTPUT ${PATH_REVISION}
|
|
COMMAND ${CMAKE_SOURCE_DIR}/getRevision.sh
|
|
COMMENT "Generate Git version"
|
|
)
|
|
set_property(SOURCE ${PATH_REVISION} PROPERTY SKIP_AUTOGEN ON)
|
|
|
|
project( GLideN64 )
|
|
|
|
include(GNUInstallDirs)
|
|
|
|
set(GLideN64_SOURCES
|
|
3DMath.cpp
|
|
Combiner.cpp
|
|
CombinerKey.cpp
|
|
CommonPluginAPI.cpp
|
|
Config.cpp
|
|
convert.cpp
|
|
CRC32.cpp
|
|
DebugDump.cpp
|
|
Debugger.cpp
|
|
DepthBuffer.cpp
|
|
DisplayWindow.cpp
|
|
DisplayLoadProgress.cpp
|
|
FrameBuffer.cpp
|
|
FrameBufferInfo.cpp
|
|
GBI.cpp
|
|
gDP.cpp
|
|
GLideN64.cpp
|
|
GraphicsDrawer.cpp
|
|
gSP.cpp
|
|
Log.cpp
|
|
N64.cpp
|
|
NoiseTexture.cpp
|
|
PaletteTexture.cpp
|
|
Performance.cpp
|
|
PostProcessor.cpp
|
|
RDP.cpp
|
|
RSP.cpp
|
|
RSP_LoadMatrix.cpp
|
|
SoftwareRender.cpp
|
|
TexrectDrawer.cpp
|
|
TextDrawer.cpp
|
|
TextureFilterHandler.cpp
|
|
Textures.cpp
|
|
VI.cpp
|
|
ZlutTexture.cpp
|
|
BufferCopy/BlueNoiseTexture.cpp
|
|
BufferCopy/ColorBufferToRDRAM.cpp
|
|
BufferCopy/DepthBufferToRDRAM.cpp
|
|
BufferCopy/RDRAMtoColorBuffer.cpp
|
|
DepthBufferRender/ClipPolygon.cpp
|
|
DepthBufferRender/DepthBufferRender.cpp
|
|
common/CommonAPIImpl_common.cpp
|
|
Graphics/Context.cpp
|
|
Graphics/ColorBufferReader.cpp
|
|
Graphics/CombinerProgram.cpp
|
|
Graphics/ObjectHandle.cpp
|
|
Graphics/OpenGLContext/GLFunctions.cpp
|
|
Graphics/OpenGLContext/ThreadedOpenGl/opengl_Command.cpp
|
|
Graphics/OpenGLContext/ThreadedOpenGl/opengl_ObjectPool.cpp
|
|
Graphics/OpenGLContext/ThreadedOpenGl/opengl_Wrapper.cpp
|
|
Graphics/OpenGLContext/ThreadedOpenGl/opengl_WrappedFunctions.cpp
|
|
Graphics/OpenGLContext/ThreadedOpenGl/RingBufferPool.cpp
|
|
Graphics/OpenGLContext/opengl_Attributes.cpp
|
|
Graphics/OpenGLContext/opengl_BufferedDrawer.cpp
|
|
Graphics/OpenGLContext/opengl_BufferManipulationObjectFactory.cpp
|
|
Graphics/OpenGLContext/opengl_CachedFunctions.cpp
|
|
Graphics/OpenGLContext/opengl_ColorBufferReaderWithBufferStorage.cpp
|
|
Graphics/OpenGLContext/opengl_ColorBufferReaderWithPixelBuffer.cpp
|
|
Graphics/OpenGLContext/opengl_ColorBufferReaderWithReadPixels.cpp
|
|
Graphics/OpenGLContext/opengl_ContextImpl.cpp
|
|
Graphics/OpenGLContext/opengl_GLInfo.cpp
|
|
Graphics/OpenGLContext/opengl_Parameters.cpp
|
|
Graphics/OpenGLContext/opengl_TextureManipulationObjectFactory.cpp
|
|
Graphics/OpenGLContext/opengl_UnbufferedDrawer.cpp
|
|
Graphics/OpenGLContext/opengl_Utils.cpp
|
|
Graphics/OpenGLContext/GLSL/glsl_CombinerInputs.cpp
|
|
Graphics/OpenGLContext/GLSL/glsl_CombinerProgramBuilder.cpp
|
|
Graphics/OpenGLContext/GLSL/glsl_CombinerProgramBuilderCommon.cpp
|
|
Graphics/OpenGLContext/GLSL/glsl_CombinerProgramBuilderAccurate.cpp
|
|
Graphics/OpenGLContext/GLSL/glsl_CombinerProgramBuilderFast.cpp
|
|
Graphics/OpenGLContext/GLSL/glsl_CombinerProgramImpl.cpp
|
|
Graphics/OpenGLContext/GLSL/glsl_CombinerProgramUniformFactory.cpp
|
|
Graphics/OpenGLContext/GLSL/glsl_CombinerProgramUniformFactoryCommon.cpp
|
|
Graphics/OpenGLContext/GLSL/glsl_CombinerProgramUniformFactoryAccurate.cpp
|
|
Graphics/OpenGLContext/GLSL/glsl_CombinerProgramUniformFactoryFast.cpp
|
|
Graphics/OpenGLContext/GLSL/glsl_FXAA.cpp
|
|
Graphics/OpenGLContext/GLSL/glsl_ShaderStorage.cpp
|
|
Graphics/OpenGLContext/GLSL/glsl_SpecialShadersFactory.cpp
|
|
Graphics/OpenGLContext/GLSL/glsl_Utils.cpp
|
|
uCodes/F3D.cpp
|
|
uCodes/F3DBETA.cpp
|
|
uCodes/F3DDKR.cpp
|
|
uCodes/F3DEX.cpp
|
|
uCodes/F3DAM.cpp
|
|
uCodes/F3DEX2.cpp
|
|
uCodes/F3DEX2ACCLAIM.cpp
|
|
uCodes/F3DEX2CBFD.cpp
|
|
uCodes/F3DZEX2.cpp
|
|
uCodes/F3DFLX2.cpp
|
|
uCodes/F3DGOLDEN.cpp
|
|
uCodes/F3DTEXA.cpp
|
|
uCodes/F3DPD.cpp
|
|
uCodes/F3DSETA.cpp
|
|
uCodes/F5Indi_Naboo.cpp
|
|
uCodes/F5Rogue.cpp
|
|
uCodes/L3D.cpp
|
|
uCodes/L3DEX2.cpp
|
|
uCodes/L3DEX.cpp
|
|
uCodes/S2DEX2.cpp
|
|
uCodes/S2DEX.cpp
|
|
uCodes/T3DUX.cpp
|
|
uCodes/Turbo3D.cpp
|
|
uCodes/ZSort.cpp
|
|
uCodes/ZSortBOSS.cpp
|
|
)
|
|
|
|
set(GLideNUI_SOURCES
|
|
GLideNUI/AboutDialog.cpp
|
|
GLideNUI/AboutDialog.ui
|
|
GLideNUI/ConfigDialog.cpp
|
|
GLideNUI/Config_GLideNUI.cpp
|
|
GLideNUI/GLideNUI.cpp
|
|
GLideNUI/Settings.cpp
|
|
GLideNUI/QtKeyToHID.cpp
|
|
GLideNUI/HIDKeyToName.cpp
|
|
GLideNUI/configDialog.ui
|
|
GLideNUI/icon.qrc
|
|
)
|
|
|
|
if(MUPENPLUSAPI_GLIDENUI OR NOT MUPENPLUSAPI)
|
|
set(CMAKE_AUTOMOC ON)
|
|
set(CMAKE_AUTORCC ON)
|
|
set(CMAKE_AUTOUIC ON)
|
|
|
|
find_package(Qt5 COMPONENTS Core Widgets Gui REQUIRED)
|
|
set(GLIDENUI_LIBRARIES
|
|
Qt5::Widgets Qt5::Core Qt5::Gui
|
|
)
|
|
if (MUPENPLUSAPI)
|
|
list(APPEND GLideNUI_SOURCES
|
|
GLideNUI/fullscreenresolutions_mupen64plus.cpp
|
|
)
|
|
else()
|
|
list(APPEND GLideNUI_SOURCES
|
|
GLideNUI/fullscreenresolutions_windows.cpp
|
|
)
|
|
endif()
|
|
endif()
|
|
|
|
#check if we're running on Raspberry Pi
|
|
if(EXISTS "${CMAKE_FIND_ROOT_PATH}/opt/vc/include/bcm_host.h" AND NOT MESA)
|
|
message("bcm_host.h found")
|
|
set(BCMHOST ON)
|
|
set(EGL ON)
|
|
set(EGL_LIB -lbrcmEGL -lbrcmGLESv2)
|
|
add_definitions(
|
|
-DVC
|
|
)
|
|
include_directories(
|
|
"${CMAKE_FIND_ROOT_PATH}/opt/vc/include"
|
|
"${CMAKE_FIND_ROOT_PATH}/opt/vc/include/interface/vcos"
|
|
"${CMAKE_FIND_ROOT_PATH}/opt/vc/include/interface/vmcs_host/linux"
|
|
"${CMAKE_FIND_ROOT_PATH}/opt/vc/include/interface/vcos/pthreads"
|
|
)
|
|
link_directories(
|
|
"${CMAKE_FIND_ROOT_PATH}/opt/vc/lib"
|
|
"${CMAKE_FIND_ROOT_PATH}/opt/vc/lib/GL"
|
|
)
|
|
else(EXISTS "${CMAKE_FIND_ROOT_PATH}/opt/vc/include/bcm_host.h" AND NOT MESA)
|
|
set(EGL_LIB -lEGL)
|
|
endif(EXISTS "${CMAKE_FIND_ROOT_PATH}/opt/vc/include/bcm_host.h" AND NOT MESA)
|
|
|
|
if(MUPENPLUSAPI)
|
|
add_definitions(
|
|
-DMUPENPLUSAPI
|
|
-DTXFILTER_LIB
|
|
)
|
|
include_directories( . inc )
|
|
set(GLideN64_SOURCES_UNIX
|
|
MupenPlusPluginAPI.cpp
|
|
mupenplus/CommonAPIImpl_mupenplus.cpp
|
|
mupenplus/MemoryStatus_mupenplus.cpp
|
|
mupenplus/MupenPlusAPIImpl.cpp
|
|
Graphics/OpenGLContext/mupen64plus/mupen64plus_DisplayWindow.cpp
|
|
)
|
|
|
|
if(MUPENPLUSAPI_GLIDENUI)
|
|
add_definitions(-DM64P_GLIDENUI)
|
|
list(APPEND GLideN64_SOURCES_UNIX
|
|
${GLideNUI_SOURCES}
|
|
)
|
|
else()
|
|
list(APPEND GLideN64_SOURCES_UNIX
|
|
mupenplus/Config_mupenplus.cpp
|
|
)
|
|
endif()
|
|
|
|
set(GLideN64_SOURCES_WIN ${GLideN64_SOURCES_UNIX}
|
|
)
|
|
if (ANDROID)
|
|
set(GLideN64_DLL_NAME libmupen64plus-video-GLideN64)
|
|
else()
|
|
set(GLideN64_DLL_NAME mupen64plus-video-GLideN64)
|
|
endif()
|
|
else(MUPENPLUSAPI)
|
|
if(UNIX)
|
|
message(FATAL_ERROR "UNIX build requires MUPENPLUSAPI!")
|
|
endif(UNIX)
|
|
include_directories( . inc )
|
|
set(GLideN64_SOURCES_WIN
|
|
ZilmarPluginAPI.cpp
|
|
GLideNUI/Config_GLideNUI.cpp
|
|
windows/CommonAPIImpl_windows.cpp
|
|
windows/GLideN64_windows.cpp
|
|
windows/MemoryStatus_windows.cpp
|
|
windows/ZilmarAPIImpl_windows.cpp
|
|
windows/ScreenShot.cpp
|
|
Graphics/OpenGLContext/windows/windows_DisplayWindow.cpp
|
|
Graphics/OpenGLContext/windows/WindowsWGL.cpp
|
|
${GLideNUI_SOURCES}
|
|
)
|
|
set(GLideN64_DLL_NAME GLideN64)
|
|
endif(MUPENPLUSAPI)
|
|
|
|
add_subdirectory( osal )
|
|
include_directories( osal )
|
|
|
|
if (NOHQ)
|
|
list(APPEND GLideN64_SOURCES
|
|
TxFilterStub.cpp
|
|
)
|
|
else (NOHQ)
|
|
add_subdirectory( GLideNHQ )
|
|
include_directories( GLideNHQ )
|
|
endif(NOHQ)
|
|
|
|
if(UNIX)
|
|
list(APPEND GLideN64_SOURCES ${GLideN64_SOURCES_UNIX})
|
|
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
|
add_definitions(
|
|
-DOS_MAC_OS_X
|
|
)
|
|
if (NOT CMAKE_VERSION VERSION_LESS 2.8.12)
|
|
set(CMAKE_MACOSX_RPATH 0)
|
|
endif()
|
|
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
|
add_definitions(
|
|
-DOS_LINUX
|
|
)
|
|
endif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
|
endif(UNIX)
|
|
|
|
if(MINGW)
|
|
add_definitions(
|
|
-DMINGW
|
|
)
|
|
if (NOT MUPENPLUSAPI)
|
|
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -static")
|
|
endif()
|
|
endif(MINGW)
|
|
|
|
if(WIN32)
|
|
list(APPEND GLideN64_SOURCES ${GLideN64_SOURCES_WIN})
|
|
add_definitions(
|
|
-DOS_WINDOWS
|
|
-D__WIN32__
|
|
-DWIN32
|
|
-D_WIN32_ASM
|
|
-D_CRT_SECURE_NO_WARNINGS
|
|
-D__MSC__
|
|
)
|
|
endif(WIN32)
|
|
|
|
if(SDL)
|
|
include(FindPkgConfig)
|
|
pkg_check_modules(SDL REQUIRED sdl)
|
|
include_directories(${SDL_INCLUDE_DIRS})
|
|
add_definitions(
|
|
-DUSE_SDL
|
|
)
|
|
endif(SDL)
|
|
|
|
if(PANDORA)
|
|
#Pandora as a SGX530, but it should share the bugs and limitations as SGX540
|
|
add_definitions(
|
|
-DPANDORA
|
|
-DPowerVR_SGX_540
|
|
-DEGL
|
|
)
|
|
endif(PANDORA)
|
|
|
|
if(ODROID)
|
|
add_definitions(
|
|
-DODROID
|
|
)
|
|
endif(ODROID)
|
|
|
|
if(VERO4K)
|
|
add_definitions(
|
|
-DVERO4K
|
|
)
|
|
endif(VERO4K)
|
|
|
|
if(ANDROID)
|
|
add_definitions(-DOS_ANDROID -DEGL_EGLEXT_PROTOTYPES -DEGL)
|
|
set(EGL ON)
|
|
|
|
if(ANDROID_ABI STREQUAL "armeabi-v7a" OR ANDROID_ABI STREQUAL "arm64-v8a")
|
|
set(NEON_OPT ON)
|
|
set(VEC4_OPT ON)
|
|
set(CRC_NEON ON)
|
|
elseif(ANDROID_ABI STREQUAL "x86" OR ANDROID_ABI STREQUAL "x86_64")
|
|
set(CRC_OPT ON)
|
|
set(VEC4_OPT ON)
|
|
endif()
|
|
|
|
list(APPEND GLideN64_SOURCES
|
|
Log_android.cpp
|
|
Graphics/OpenGLContext/opengl_ColorBufferReaderWithEGLImage.cpp
|
|
Graphics/OpenGLContext/GraphicBuffer/PrivateApi/GraphicBuffer.cpp
|
|
Graphics/OpenGLContext/GraphicBuffer/PrivateApi/libhardware.cpp
|
|
Graphics/OpenGLContext/GraphicBuffer/PublicApi/android_hardware_buffer_compat.cpp
|
|
Graphics/OpenGLContext/GraphicBuffer/GraphicBufferWrapper.cpp
|
|
)
|
|
|
|
list(REMOVE_ITEM GLideN64_SOURCES
|
|
Log.cpp
|
|
)
|
|
|
|
find_library( # Defines the name of the path variable that stores the
|
|
# location of the NDK library.
|
|
LOG_LIB
|
|
|
|
# Specifies the name of the NDK library that
|
|
# CMake needs to locate.
|
|
log )
|
|
endif(ANDROID)
|
|
|
|
if(ANDROID)
|
|
set( FREETYPE_INCLUDE_DIRS "${ANDROID_LIB_PATH}/freetype/include" )
|
|
elseif(UNIX OR BCMHOST)
|
|
set( FREETYPE_INCLUDE_DIRS "/usr/include/freetype2/" )
|
|
else(UNIX OR BCMHOST)
|
|
set( ENV{FREETYPE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../../freetype )
|
|
endif(ANDROID)
|
|
|
|
if(ANDROID)
|
|
add_library( ANDROID_FREETYPE
|
|
SHARED
|
|
IMPORTED )
|
|
|
|
if( CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|
set( BUILD_VARIANT "debug" )
|
|
else()
|
|
set( BUILD_VARIANT "release" )
|
|
endif()
|
|
|
|
set_target_properties( # Specifies the target library.
|
|
ANDROID_FREETYPE
|
|
|
|
# Specifies the parameter you want to define.
|
|
PROPERTIES IMPORTED_LOCATION
|
|
|
|
# Provides the path to the library you want to import.
|
|
${ANDROID_LIB_PATH}/libs/${BUILD_VARIANT}/${ANDROID_ABI}/libfreetype.so)
|
|
set(FREETYPE_LIBRARIES ANDROID_FREETYPE)
|
|
else(ANDROID)
|
|
FIND_PACKAGE( Freetype REQUIRED )
|
|
# presume a qt build linked to freetype
|
|
# will be used with mingw
|
|
if (NOT MUPENPLUSAPI AND MINGW)
|
|
set(FREETYPE_LIBRARIES "")
|
|
endif()
|
|
endif(ANDROID)
|
|
|
|
include_directories( ${FREETYPE_INCLUDE_DIRS} )
|
|
|
|
if(VEC4_OPT)
|
|
add_definitions(
|
|
-D__VEC4_OPT
|
|
)
|
|
endif(VEC4_OPT)
|
|
|
|
if(CRC_ARMV8)
|
|
list(REMOVE_ITEM GLideN64_SOURCES
|
|
CRC32.cpp
|
|
)
|
|
list(APPEND GLideN64_SOURCES
|
|
CRC32_ARMV8.cpp
|
|
)
|
|
elseif(CRC_OPT)
|
|
list(REMOVE_ITEM GLideN64_SOURCES
|
|
CRC32.cpp
|
|
)
|
|
list(APPEND GLideN64_SOURCES
|
|
CRC_OPT.cpp
|
|
)
|
|
elseif(CRC_NEON)
|
|
list(REMOVE_ITEM GLideN64_SOURCES
|
|
CRC32.cpp
|
|
)
|
|
list(APPEND GLideN64_SOURCES
|
|
Neon/CRC_OPT_NEON.cpp
|
|
)
|
|
endif(CRC_ARMV8)
|
|
|
|
if(NEON_OPT)
|
|
add_definitions(
|
|
-D__NEON_OPT
|
|
)
|
|
list(APPEND GLideN64_SOURCES
|
|
Neon/3DMathNeon.cpp
|
|
Neon/gSPNeon.cpp
|
|
Neon/RSP_LoadMatrixNeon.cpp
|
|
)
|
|
list(REMOVE_ITEM GLideN64_SOURCES
|
|
3DMath.cpp
|
|
RSP_LoadMatrix.cpp
|
|
)
|
|
endif(NEON_OPT)
|
|
|
|
if(X86_OPT)
|
|
list(APPEND GLideN64_SOURCES
|
|
RSP_LoadMatrixX86.cpp
|
|
)
|
|
list(REMOVE_ITEM GLideN64_SOURCES
|
|
RSP_LoadMatrix.cpp
|
|
)
|
|
endif(X86_OPT)
|
|
|
|
# Build type
|
|
|
|
if( NOT CMAKE_BUILD_TYPE)
|
|
set( CMAKE_BUILD_TYPE Release)
|
|
endif( NOT CMAKE_BUILD_TYPE)
|
|
|
|
if( CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|
set( CMAKE_BUILD_TYPE Debug)
|
|
set( DEBUG_BUILD TRUE)
|
|
add_definitions(
|
|
-DGL_DEBUG
|
|
)
|
|
endif( CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|
|
|
if(GL_PROFILE)
|
|
add_definitions(
|
|
-DGL_PROFILE -DGL_DEBUG
|
|
)
|
|
endif(GL_PROFILE)
|
|
|
|
if(EGL)
|
|
add_definitions(
|
|
-DEGL
|
|
)
|
|
set(OPENGL_LIBRARIES ${EGL_LIB})
|
|
else(EGL)
|
|
find_package(OpenGL REQUIRED)
|
|
include_directories(${OpenGL_INCLUDE_DIRS})
|
|
link_directories(${OpenGL_LIBRARY_DIRS})
|
|
add_definitions(${OpenGL_DEFINITIONS})
|
|
if(NOT OPENGL_FOUND)
|
|
message(ERROR " OPENGL not found!")
|
|
endif(NOT OPENGL_FOUND)
|
|
endif(EGL)
|
|
|
|
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
|
#check for compiler version
|
|
execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE G++_VERSION)
|
|
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND G++_VERSION VERSION_LESS 4.8)
|
|
message("Found compiler version " ${G++_VERSION})
|
|
message(SEND_ERROR "You need at least G++ 4.8 to compile GLideN64!")
|
|
elseif(G++_VERSION VERSION_LESS 3.3)
|
|
message("Found compiler version " ${G++_VERSION})
|
|
message(SEND_ERROR "You need at least Clang 3.3 to compile GLideN64!")
|
|
endif()
|
|
set(GCC_CPP11_COMPILE_FLAGS "-std=c++11")
|
|
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_CPP11_COMPILE_FLAGS}" )
|
|
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
|
set(GCC_STATIC_LINK_FLAGS "-static-libgcc")
|
|
endif()
|
|
set( CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${GCC_STATIC_LINK_FLAGS}" )
|
|
endif()
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED YES)
|
|
|
|
add_library( ${GLideN64_DLL_NAME} SHARED ${GLideN64_SOURCES} ${PATH_REVISION})
|
|
|
|
if( CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|
SET_TARGET_PROPERTIES(
|
|
${GLideN64_DLL_NAME}
|
|
PROPERTIES
|
|
LINKER_LANGUAGE CXX # Or else we get an error message, because cmake can't figure out from the ".o"-suffix that it is a C-linker we need.
|
|
PREFIX ""
|
|
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/plugin/Debug
|
|
)
|
|
|
|
if(SDL)
|
|
if (NOHQ)
|
|
target_link_libraries(${GLideN64_DLL_NAME} PRIVATE ${OPENGL_LIBRARIES} ${SDL_LIBRARIES} ${FREETYPE_LIBRARIES} ${LOG_LIB} ${GLIDENUI_LIBRARIES} osald )
|
|
else (NOHQ)
|
|
target_link_libraries(${GLideN64_DLL_NAME} PRIVATE ${OPENGL_LIBRARIES} ${SDL_LIBRARIES} ${FREETYPE_LIBRARIES} ${LOG_LIB} ${GLIDENUI_LIBRARIES} osald GLideNHQd )
|
|
endif (NOHQ)
|
|
else(SDL)
|
|
if (NOHQ)
|
|
target_link_libraries(${GLideN64_DLL_NAME} PRIVATE ${OPENGL_LIBRARIES} ${FREETYPE_LIBRARIES} ${LOG_LIB} ${GLIDENUI_LIBRARIES} osald )
|
|
else (NOHQ)
|
|
target_link_libraries(${GLideN64_DLL_NAME} PRIVATE ${OPENGL_LIBRARIES} ${FREETYPE_LIBRARIES} ${LOG_LIB} ${GLIDENUI_LIBRARIES} osald GLideNHQd )
|
|
endif (NOHQ)
|
|
endif(SDL)
|
|
endif( CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|
|
|
if( CMAKE_BUILD_TYPE STREQUAL "Release")
|
|
include(CheckIPOSupported)
|
|
check_ipo_supported(RESULT result)
|
|
if(result)
|
|
message("Interprocedural optimizations enabled")
|
|
set_property(TARGET ${GLideN64_DLL_NAME} PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
|
|
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -O3")
|
|
endif()
|
|
|
|
SET_TARGET_PROPERTIES(
|
|
${GLideN64_DLL_NAME}
|
|
PROPERTIES
|
|
LINKER_LANGUAGE CXX # Or else we get an error message, because cmake can't figure out from the ".o"-suffix that it is a C-linker we need.
|
|
PREFIX ""
|
|
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/plugin/Release
|
|
)
|
|
|
|
if(SDL)
|
|
if (NOHQ)
|
|
target_link_libraries(${GLideN64_DLL_NAME} ${OPENGL_LIBRARIES} ${SDL_LIBRARIES} ${FREETYPE_LIBRARIES} ${LOG_LIB} ${GLIDENUI_LIBRARIES} osal )
|
|
else (NOHQ)
|
|
target_link_libraries(${GLideN64_DLL_NAME} ${OPENGL_LIBRARIES} ${SDL_LIBRARIES} ${FREETYPE_LIBRARIES} ${LOG_LIB} ${GLIDENUI_LIBRARIES} osal GLideNHQ )
|
|
endif (NOHQ)
|
|
else(SDL)
|
|
if (NOHQ)
|
|
target_link_libraries(${GLideN64_DLL_NAME} ${OPENGL_LIBRARIES} ${FREETYPE_LIBRARIES} ${LOG_LIB} ${GLIDENUI_LIBRARIES} osal )
|
|
else (NOHQ)
|
|
target_link_libraries(${GLideN64_DLL_NAME} ${OPENGL_LIBRARIES} ${FREETYPE_LIBRARIES} ${LOG_LIB} ${GLIDENUI_LIBRARIES} osal GLideNHQ )
|
|
endif (NOHQ)
|
|
endif(SDL)
|
|
endif( CMAKE_BUILD_TYPE STREQUAL "Release")
|
|
|
|
if(UNIX AND NOT APPLE AND NOT ANDROID)
|
|
install(TARGETS ${GLideN64_DLL_NAME}
|
|
DESTINATION "${CMAKE_INSTALL_LIBDIR}/mupen64plus"
|
|
)
|
|
install(FILES ../ini/${PROJECT_NAME}.custom.ini
|
|
DESTINATION "${CMAKE_INSTALL_DATADIR}/mupen64plus"
|
|
)
|
|
endif(UNIX AND NOT APPLE AND NOT ANDROID)
|