2011-02-20 13:31:49 +00:00
|
|
|
# The project's name is VBA-M it uses C and C++ code
|
|
|
|
PROJECT(VBA-M C CXX)
|
2010-03-15 03:36:45 +00:00
|
|
|
|
2011-02-20 13:31:49 +00:00
|
|
|
cmake_minimum_required( VERSION 2.6.0 )
|
2008-06-06 18:56:41 +00:00
|
|
|
if( COMMAND cmake_policy )
|
|
|
|
cmake_policy( SET CMP0003 NEW )
|
2008-06-08 20:46:25 +00:00
|
|
|
cmake_policy( SET CMP0005 OLD )
|
2008-06-06 18:56:41 +00:00
|
|
|
endif( COMMAND cmake_policy )
|
|
|
|
SET( CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/CMakeScripts )
|
2015-03-27 17:48:42 +00:00
|
|
|
#Output all binaries at top level
|
|
|
|
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR})
|
2008-06-06 10:17:20 +00:00
|
|
|
|
2011-02-24 11:14:59 +00:00
|
|
|
option( ENABLE_SDL "Build the SDL port" ON )
|
2015-05-18 03:04:34 +00:00
|
|
|
option( ENABLE_GTK "Build the GTK+ GUI" OFF )
|
2015-11-19 02:34:38 +00:00
|
|
|
option( ENABLE_GTK3 "Build the GTK+ GUI" OFF )
|
2015-05-18 03:04:34 +00:00
|
|
|
option( ENABLE_WX "Build the wxWidgets port" ON )
|
2011-02-24 11:14:59 +00:00
|
|
|
option( ENABLE_DEBUGGER "Enable the debugger" ON )
|
2011-02-24 13:06:17 +00:00
|
|
|
option( ENABLE_NLS "Enable translations" ON )
|
2011-02-24 11:14:59 +00:00
|
|
|
option( ENABLE_ASM_CORE "Enable x86 ASM CPU cores" OFF )
|
|
|
|
option( ENABLE_ASM_SCALERS "Enable x86 ASM graphic filters" OFF )
|
2013-09-24 11:49:26 +00:00
|
|
|
option( ENABLE_LINK "Enable GBA linking functionality" OFF )
|
2011-02-24 11:14:59 +00:00
|
|
|
option( ENABLE_LIRC "Enable LIRC support" OFF )
|
2012-10-03 18:00:45 +00:00
|
|
|
option( ENABLE_FFMPEG "Enable ffmpeg A/V recording" OFF )
|
2011-05-24 07:39:29 +00:00
|
|
|
if(ENABLE_ASM_SCALERS)
|
|
|
|
option( ENABLE_MMX "Enable MMX" OFF )
|
|
|
|
endif(ENABLE_ASM_SCALERS)
|
|
|
|
option( ENABLE_GBA_LOGGING "Enable extended GBA logging" ON )
|
|
|
|
if( ENABLE_GBA_LOGGING )
|
|
|
|
ADD_DEFINITIONS (-DGBA_LOGGING )
|
|
|
|
endif( ENABLE_GBA_LOGGING )
|
|
|
|
if(ENABLE_MMX)
|
|
|
|
ADD_DEFINITIONS (-DMMX)
|
|
|
|
endif(ENABLE_MMX)
|
2011-02-24 11:14:59 +00:00
|
|
|
|
|
|
|
# The SDL port can't be built without debugging support
|
|
|
|
if( NOT ENABLE_DEBUGGER AND ENABLE_SDL )
|
|
|
|
message( SEND_ERROR "The SDL port can't be built without debugging support" )
|
|
|
|
endif( NOT ENABLE_DEBUGGER AND ENABLE_SDL )
|
2008-06-06 10:17:20 +00:00
|
|
|
|
2011-02-24 11:14:59 +00:00
|
|
|
# Set the version number with -DVERSION=X.X.X-uber
|
2008-06-06 10:17:20 +00:00
|
|
|
IF( NOT VERSION )
|
2015-06-12 11:51:15 +00:00
|
|
|
#Will need to change this over to git
|
2015-06-12 12:04:26 +00:00
|
|
|
SET( VERSION "https://github.com/visualboyadvance-m/visualboyadvance-m" )
|
2015-05-18 02:41:21 +00:00
|
|
|
|
2015-06-12 12:04:26 +00:00
|
|
|
#openmw does this
|
|
|
|
if(EXISTS ${PROJECT_SOURCE_DIR}/.git)
|
|
|
|
if(NOT EXISTS ${PROJECT_SOURCE_DIR}/.git/shallow)
|
|
|
|
find_package(Git)
|
|
|
|
if(GIT_FOUND)
|
|
|
|
include(GetGitRevisionDescription)
|
|
|
|
get_git_head_revision(REFSPEC COMMITHASH)
|
|
|
|
SET( VERSION "GIT Commit: " ${COMMITHASH} )
|
|
|
|
else(GIT_FOUND)
|
|
|
|
message(WARNING "Git executable not found")
|
|
|
|
endif(GIT_FOUND)
|
|
|
|
else(NOT EXISTS ${PROJECT_SOURCE_DIR}/.git/shallow)
|
|
|
|
message(STATUS "Shallow Git clone detected, not attempting to retrieve version info")
|
|
|
|
endif(NOT EXISTS ${PROJECT_SOURCE_DIR}/.git/shallow)
|
|
|
|
endif(EXISTS ${PROJECT_SOURCE_DIR}/.git)
|
2008-06-06 10:17:20 +00:00
|
|
|
ENDIF( NOT VERSION )
|
|
|
|
|
more minor improvements for OS X build
Add Homebrew and MacPorts paths for findings headers and libraries.
Add -x objective-c++ to the C++ compile command so that conditionally
compiled ObjectiveC code for OS X can be supported.
Throw a fatal error if the user tries to enable ENABLE_ASM_CORE,
ENABLE_ASM_SCALERS or ENABLE_MMX on AMD64, as this is not supported yet.
If ENABLE_ASM_SCALERS is enabled, try to find a Homebrew or MacPorts
nasm before using the outdated XCode nasm.
For the future, if the user has only the old XCode nasm which does not
support 64 bit objects and the build is 64 bit, throw a fatal error.
For 32 bit builds with the old XCode nasm, use -f macho instead of -f
macho32, which is used if the version of nasm is > 2.0 .
Pass -DMACHO instead of -DELF and, on AMD64 (for the future) -D__AMD64__
for nasm on OS X.
Pass -D__AMD64__ to C++ compilation as well on AMD64, this will help
when we support AMD64 inline assembly.
Add support for automatically linking Homebrew keg-only gettext from
/usr/local/opt/gettext for ENABLE_NLS.
Fix copying Info.plist and vbam.icns to the .app bundle.
Add a key to the Info.plist to support sharp text on retina displays, as
per:
https://wiki.wxwidgets.org/WxMac-specific_topics#Retina_display_support
Set wxWidgets_USE_DEBUG to ON if CMAKE_BUILD_TYPE is "Debug". I'm not
sure this does anything or if I'm doing this correctly though.
Also set wxWidgets_USE_UNICODE to ON. Again, I'm not sure this does
anything or is in the right place.
Fix a bug in the config dir finding code in
wxvbamApp::GetConfigurationPath() updated in 8b8f2f7 to only use the
more top level dirs if there is a vbam.ini in them, not if they are
writable as well, and use the reverse order (starting with user local
dirs) to check for writable dirs and their writable parents. This fixes
a problem with the vbam.ini being written to the Plugins directory of
the .app bundle if it's writable instead of ~/Library/Application
Support/vbam as was intended.
2015-11-17 02:56:23 +00:00
|
|
|
|
|
|
|
|
2008-09-26 17:23:12 +00:00
|
|
|
# Fill in SDLMAIN_LIBRARY on OS X manually to avoid using SDLMain.m
|
2008-10-20 13:40:29 +00:00
|
|
|
# OS X users will have to compile and install SDL from source.
|
2015-05-09 14:09:29 +00:00
|
|
|
if( APPLE AND ENABLE_SDL )
|
2015-07-11 00:34:27 +00:00
|
|
|
ADD_DEFINITIONS (-DwxMAC_USE_CORE_GRAPHICS )
|
2015-11-19 02:34:38 +00:00
|
|
|
SET(SDL2MAIN_LIBRARY "-lSDL2main")
|
2015-05-09 14:09:29 +00:00
|
|
|
endif( APPLE AND ENABLE_SDL )
|
2008-09-26 17:23:12 +00:00
|
|
|
|
more minor improvements for OS X build
Add Homebrew and MacPorts paths for findings headers and libraries.
Add -x objective-c++ to the C++ compile command so that conditionally
compiled ObjectiveC code for OS X can be supported.
Throw a fatal error if the user tries to enable ENABLE_ASM_CORE,
ENABLE_ASM_SCALERS or ENABLE_MMX on AMD64, as this is not supported yet.
If ENABLE_ASM_SCALERS is enabled, try to find a Homebrew or MacPorts
nasm before using the outdated XCode nasm.
For the future, if the user has only the old XCode nasm which does not
support 64 bit objects and the build is 64 bit, throw a fatal error.
For 32 bit builds with the old XCode nasm, use -f macho instead of -f
macho32, which is used if the version of nasm is > 2.0 .
Pass -DMACHO instead of -DELF and, on AMD64 (for the future) -D__AMD64__
for nasm on OS X.
Pass -D__AMD64__ to C++ compilation as well on AMD64, this will help
when we support AMD64 inline assembly.
Add support for automatically linking Homebrew keg-only gettext from
/usr/local/opt/gettext for ENABLE_NLS.
Fix copying Info.plist and vbam.icns to the .app bundle.
Add a key to the Info.plist to support sharp text on retina displays, as
per:
https://wiki.wxwidgets.org/WxMac-specific_topics#Retina_display_support
Set wxWidgets_USE_DEBUG to ON if CMAKE_BUILD_TYPE is "Debug". I'm not
sure this does anything or if I'm doing this correctly though.
Also set wxWidgets_USE_UNICODE to ON. Again, I'm not sure this does
anything or is in the right place.
Fix a bug in the config dir finding code in
wxvbamApp::GetConfigurationPath() updated in 8b8f2f7 to only use the
more top level dirs if there is a vbam.ini in them, not if they are
writable as well, and use the reverse order (starting with user local
dirs) to check for writable dirs and their writable parents. This fixes
a problem with the vbam.ini being written to the Plugins directory of
the .app bundle if it's writable instead of ~/Library/Application
Support/vbam as was intended.
2015-11-17 02:56:23 +00:00
|
|
|
# Add support for MacPorts and Homebrew on OS X
|
|
|
|
# and ObjectiveC code
|
|
|
|
IF(APPLE)
|
|
|
|
SET(CMAKE_INCLUDE_PATH "${CMAKE_INCLUDE_PATH};/usr/local/include;/opt/local/include")
|
|
|
|
SET(CMAKE_LIBRARY_PATH "${CMAKE_LIBRARY_PATH};/usr/local/lib;/opt/local/lib")
|
|
|
|
SET(CMAKE_PROGRAM_PATH "${CMAKE_PROGRAM_PATH};/usr/local/bin;/opt/local/bin")
|
|
|
|
|
|
|
|
link_directories("/usr/local/lib")
|
|
|
|
include_directories("/usr/local/include")
|
|
|
|
|
|
|
|
link_directories("/opt/local/lib")
|
|
|
|
include_directories("/opt/local/include")
|
|
|
|
|
|
|
|
# and compile as Objective-C++ for ObjectiveC #ifdefs
|
|
|
|
SET(CMAKE_CXX_COMPILE_OBJECT "<CMAKE_CXX_COMPILER> -x objective-c++ <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
|
|
|
|
ENDIF()
|
|
|
|
|
|
|
|
# We do not support amd64 asm yet
|
|
|
|
IF((ENABLE_ASM_CORE OR ENABLE_ASM_SCALERS OR ENABLE_MMX)
|
|
|
|
AND CMAKE_SYSTEM_PROCESSOR MATCHES "[xX]86|[aA][mM][dD]64|[xX]64"
|
|
|
|
AND CMAKE_C_SIZEOF_DATA_PTR EQUAL 8)
|
|
|
|
MESSAGE(FATAL_ERROR "The options ASM_CORE, ASM_SCALERS and MMX are not supported on AMD64 yet.")
|
|
|
|
ENDIF()
|
|
|
|
|
2011-02-24 11:14:59 +00:00
|
|
|
# Check for nasm
|
|
|
|
if( ENABLE_ASM_SCALERS )
|
more minor improvements for OS X build
Add Homebrew and MacPorts paths for findings headers and libraries.
Add -x objective-c++ to the C++ compile command so that conditionally
compiled ObjectiveC code for OS X can be supported.
Throw a fatal error if the user tries to enable ENABLE_ASM_CORE,
ENABLE_ASM_SCALERS or ENABLE_MMX on AMD64, as this is not supported yet.
If ENABLE_ASM_SCALERS is enabled, try to find a Homebrew or MacPorts
nasm before using the outdated XCode nasm.
For the future, if the user has only the old XCode nasm which does not
support 64 bit objects and the build is 64 bit, throw a fatal error.
For 32 bit builds with the old XCode nasm, use -f macho instead of -f
macho32, which is used if the version of nasm is > 2.0 .
Pass -DMACHO instead of -DELF and, on AMD64 (for the future) -D__AMD64__
for nasm on OS X.
Pass -D__AMD64__ to C++ compilation as well on AMD64, this will help
when we support AMD64 inline assembly.
Add support for automatically linking Homebrew keg-only gettext from
/usr/local/opt/gettext for ENABLE_NLS.
Fix copying Info.plist and vbam.icns to the .app bundle.
Add a key to the Info.plist to support sharp text on retina displays, as
per:
https://wiki.wxwidgets.org/WxMac-specific_topics#Retina_display_support
Set wxWidgets_USE_DEBUG to ON if CMAKE_BUILD_TYPE is "Debug". I'm not
sure this does anything or if I'm doing this correctly though.
Also set wxWidgets_USE_UNICODE to ON. Again, I'm not sure this does
anything or is in the right place.
Fix a bug in the config dir finding code in
wxvbamApp::GetConfigurationPath() updated in 8b8f2f7 to only use the
more top level dirs if there is a vbam.ini in them, not if they are
writable as well, and use the reverse order (starting with user local
dirs) to check for writable dirs and their writable parents. This fixes
a problem with the vbam.ini being written to the Plugins directory of
the .app bundle if it's writable instead of ~/Library/Application
Support/vbam as was intended.
2015-11-17 02:56:23 +00:00
|
|
|
IF(EXISTS "/usr/local/bin/nasm")
|
|
|
|
SET(CMAKE_ASM_NASM_COMPILER "/usr/local/bin/nasm")
|
|
|
|
ELSEIF(EXISTS "/opt/local/bin/nasm")
|
|
|
|
SET(CMAKE_ASM_NASM_COMPILER "/opt/local/bin/nasm")
|
|
|
|
ELSE()
|
|
|
|
SET(CMAKE_ASM_NASM_COMPILER "/usr/bin/nasm")
|
|
|
|
ENDIF()
|
|
|
|
ENABLE_LANGUAGE(ASM_NASM)
|
2011-02-24 11:14:59 +00:00
|
|
|
endif( ENABLE_ASM_SCALERS )
|
|
|
|
|
2010-03-15 03:36:45 +00:00
|
|
|
# Look for some dependencies using CMake scripts
|
2008-06-06 10:17:20 +00:00
|
|
|
FIND_PACKAGE ( ZLIB REQUIRED )
|
|
|
|
FIND_PACKAGE ( PNG REQUIRED )
|
|
|
|
FIND_PACKAGE ( OpenGL REQUIRED )
|
2015-11-19 02:34:38 +00:00
|
|
|
FIND_PACKAGE ( SDL2 REQUIRED )
|
2011-02-24 11:14:59 +00:00
|
|
|
|
|
|
|
if( ENABLE_LINK )
|
2015-05-21 18:42:02 +00:00
|
|
|
if( WIN32 )
|
|
|
|
set(SFML_STATIC_LIBRARIES TRUE)
|
|
|
|
endif( WIN32 )
|
2015-05-06 01:27:09 +00:00
|
|
|
FIND_PACKAGE ( SFML 2 COMPONENTS network system )
|
2011-02-24 11:14:59 +00:00
|
|
|
endif( ENABLE_LINK )
|
2011-05-25 11:55:46 +00:00
|
|
|
# set the standard libraries all ports use
|
|
|
|
SET(VBAMCORE_LIBS
|
|
|
|
vbamcore
|
|
|
|
fex
|
2015-11-19 02:34:38 +00:00
|
|
|
${SDL2_LIBRARY}
|
2015-05-06 01:27:09 +00:00
|
|
|
${SFML_LIBRARIES}
|
2011-05-25 11:55:46 +00:00
|
|
|
${OPENGL_LIBRARIES}
|
|
|
|
${ZLIB_LIBRARY}
|
2015-03-27 17:48:42 +00:00
|
|
|
${PNG_LIBRARY}
|
|
|
|
)
|
2011-02-24 11:14:59 +00:00
|
|
|
|
2011-05-24 07:39:29 +00:00
|
|
|
if(ENABLE_FFMPEG)
|
|
|
|
FIND_PACKAGE ( PkgConfig REQUIRED )
|
|
|
|
|
|
|
|
PKG_CHECK_MODULES(FFMPEG REQUIRED libavcodec libavformat libswscale libavutil)
|
|
|
|
endif(ENABLE_FFMPEG)
|
|
|
|
|
|
|
|
if(NOT ENABLE_FFMPEG)
|
|
|
|
ADD_DEFINITIONS(-DNO_FFMPEG)
|
|
|
|
endif(NOT ENABLE_FFMPEG)
|
|
|
|
|
2011-02-24 11:14:59 +00:00
|
|
|
IF( ENABLE_LIRC )
|
2008-07-10 23:41:29 +00:00
|
|
|
SET( WITHLIRC 1 )
|
2011-02-24 11:14:59 +00:00
|
|
|
ELSE( ENABLE_LIRC )
|
2008-08-03 21:02:37 +00:00
|
|
|
SET( WITHLIRC 0 )
|
2011-02-24 11:14:59 +00:00
|
|
|
ENDIF( ENABLE_LIRC )
|
2008-06-06 10:17:20 +00:00
|
|
|
|
|
|
|
# Set the default install dir
|
|
|
|
IF( NOT DATA_INSTALL_DIR )
|
|
|
|
SET( DATA_INSTALL_DIR "share/vbam" )
|
|
|
|
ENDIF( NOT DATA_INSTALL_DIR )
|
|
|
|
|
|
|
|
SET( PKGDATADIR ${CMAKE_INSTALL_PREFIX}/${DATA_INSTALL_DIR} )
|
|
|
|
|
|
|
|
# Set the configuration file location
|
|
|
|
IF( NOT SYSCONFDIR )
|
|
|
|
SET( SYSCONFDIR "/etc" )
|
|
|
|
ENDIF( NOT SYSCONFDIR )
|
|
|
|
|
|
|
|
# C defines
|
2008-07-10 23:41:29 +00:00
|
|
|
ADD_DEFINITIONS (-DHAVE_NETINET_IN_H -DHAVE_ARPA_INET_H -DHAVE_ZLIB_H -DFINAL_VERSION -DSDL -DUSE_OPENGL -DSYSCONFDIR='"${SYSCONFDIR}"' -DWITH_LIRC='${WITHLIRC}')
|
2008-06-06 10:17:20 +00:00
|
|
|
ADD_DEFINITIONS (-DVERSION='"${VERSION}"' -DPKGDATADIR='"${PKGDATADIR}"' -DPACKAGE='')
|
|
|
|
|
2011-05-25 11:55:46 +00:00
|
|
|
if( ENABLE_LINK )
|
2012-09-07 19:09:16 +00:00
|
|
|
# IPC linking code needs sem_timedwait which can be either in librt or pthreads
|
2011-05-25 11:55:46 +00:00
|
|
|
FIND_LIBRARY(RT_LIB rt)
|
|
|
|
IF(RT_LIB)
|
2012-09-07 19:09:16 +00:00
|
|
|
SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${RT_LIB})
|
2011-05-25 11:55:46 +00:00
|
|
|
SET(VBAMCORE_LIBS ${VBAMCORE_LIBS} ${RT_LIB})
|
|
|
|
ENDIF(RT_LIB)
|
2015-05-18 02:41:21 +00:00
|
|
|
|
2012-09-07 19:09:16 +00:00
|
|
|
FIND_LIBRARY(PTHREAD_LIB pthread)
|
|
|
|
IF(PTHREAD_LIB)
|
|
|
|
SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${PTHREAD_LIB})
|
|
|
|
SET(VBAMCORE_LIBS ${VBAMCORE_LIBS} ${PTHREAD_LIB})
|
|
|
|
ENDIF(PTHREAD_LIB)
|
2015-05-18 02:41:21 +00:00
|
|
|
|
2011-05-25 11:55:46 +00:00
|
|
|
INCLUDE(CheckFunctionExists)
|
|
|
|
CHECK_FUNCTION_EXISTS(sem_timedwait SEM_TIMEDWAIT)
|
|
|
|
IF( SEM_TIMEDWAIT)
|
|
|
|
ADD_DEFINITIONS (-DHAVE_SEM_TIMEDWAIT)
|
|
|
|
ENDIF( SEM_TIMEDWAIT)
|
|
|
|
else( ENABLE_LINK )
|
2011-02-20 19:03:38 +00:00
|
|
|
ADD_DEFINITIONS (-DNO_LINK)
|
2011-05-25 11:55:46 +00:00
|
|
|
endif( ENABLE_LINK )
|
2011-02-20 12:22:58 +00:00
|
|
|
|
2008-06-16 20:18:49 +00:00
|
|
|
# The debugger is enabled by default
|
2011-02-24 11:14:59 +00:00
|
|
|
if( NOT ENABLE_DEBUGGER )
|
2008-06-16 20:18:49 +00:00
|
|
|
ADD_DEFINITIONS (-DNO_DEBUGGER)
|
2011-02-24 11:14:59 +00:00
|
|
|
else( NOT ENABLE_DEBUGGER )
|
2008-06-16 20:18:49 +00:00
|
|
|
ADD_DEFINITIONS (-DBKPT_SUPPORT)
|
2011-02-24 11:14:59 +00:00
|
|
|
endif( NOT ENABLE_DEBUGGER )
|
2008-06-16 20:18:49 +00:00
|
|
|
|
2008-06-06 10:17:20 +00:00
|
|
|
# The ASM core is disabled by default because we don't know on which platform we are
|
2011-02-24 11:14:59 +00:00
|
|
|
IF( NOT ENABLE_ASM_CORE )
|
2008-06-06 10:17:20 +00:00
|
|
|
ADD_DEFINITIONS (-DC_CORE)
|
2011-02-24 11:14:59 +00:00
|
|
|
ENDIF( NOT ENABLE_ASM_CORE )
|
2008-06-06 10:17:20 +00:00
|
|
|
|
2011-02-24 13:06:17 +00:00
|
|
|
# Enable internationalization
|
|
|
|
if( ENABLE_NLS )
|
2011-02-24 17:01:10 +00:00
|
|
|
SET( LOCALEDIR ${CMAKE_INSTALL_PREFIX}/share/locale )
|
|
|
|
ADD_DEFINITIONS ( -DENABLE_NLS )
|
|
|
|
ADD_DEFINITIONS ( -DLOCALEDIR=\\\"${LOCALEDIR}\\\" )
|
2011-05-25 11:55:46 +00:00
|
|
|
# for now, only GBALink.cpp uses gettext() directly
|
more minor improvements for OS X build
Add Homebrew and MacPorts paths for findings headers and libraries.
Add -x objective-c++ to the C++ compile command so that conditionally
compiled ObjectiveC code for OS X can be supported.
Throw a fatal error if the user tries to enable ENABLE_ASM_CORE,
ENABLE_ASM_SCALERS or ENABLE_MMX on AMD64, as this is not supported yet.
If ENABLE_ASM_SCALERS is enabled, try to find a Homebrew or MacPorts
nasm before using the outdated XCode nasm.
For the future, if the user has only the old XCode nasm which does not
support 64 bit objects and the build is 64 bit, throw a fatal error.
For 32 bit builds with the old XCode nasm, use -f macho instead of -f
macho32, which is used if the version of nasm is > 2.0 .
Pass -DMACHO instead of -DELF and, on AMD64 (for the future) -D__AMD64__
for nasm on OS X.
Pass -D__AMD64__ to C++ compilation as well on AMD64, this will help
when we support AMD64 inline assembly.
Add support for automatically linking Homebrew keg-only gettext from
/usr/local/opt/gettext for ENABLE_NLS.
Fix copying Info.plist and vbam.icns to the .app bundle.
Add a key to the Info.plist to support sharp text on retina displays, as
per:
https://wiki.wxwidgets.org/WxMac-specific_topics#Retina_display_support
Set wxWidgets_USE_DEBUG to ON if CMAKE_BUILD_TYPE is "Debug". I'm not
sure this does anything or if I'm doing this correctly though.
Also set wxWidgets_USE_UNICODE to ON. Again, I'm not sure this does
anything or is in the right place.
Fix a bug in the config dir finding code in
wxvbamApp::GetConfigurationPath() updated in 8b8f2f7 to only use the
more top level dirs if there is a vbam.ini in them, not if they are
writable as well, and use the reverse order (starting with user local
dirs) to check for writable dirs and their writable parents. This fixes
a problem with the vbam.ini being written to the Plugins directory of
the .app bundle if it's writable instead of ~/Library/Application
Support/vbam as was intended.
2015-11-17 02:56:23 +00:00
|
|
|
IF(APPLE)
|
|
|
|
# use Homebrew gettext if available
|
|
|
|
IF(EXISTS "/usr/local/opt/gettext")
|
|
|
|
SET(CMAKE_INCLUDE_PATH "${CMAKE_INCLUDE_PATH};/usr/local/opt/gettext/include")
|
|
|
|
SET(CMAKE_LIBRARY_PATH "${CMAKE_LIBRARY_PATH};/usr/local/opt/gettext/lib")
|
|
|
|
SET(CMAKE_PROGRAM_PATH "${CMAKE_PROGRAM_PATH};/usr/local/opt/gettext/bin")
|
|
|
|
ENDIF()
|
|
|
|
ENDIF()
|
2011-05-25 11:55:46 +00:00
|
|
|
IF(ENABLE_LINK)
|
|
|
|
FIND_PATH(LIBINTL_INC libintl.h )
|
|
|
|
FIND_LIBRARY(LIBINTL_LIB intl )
|
|
|
|
IF(LIBINTL_LIB)
|
|
|
|
SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${LIBINTL_LIB})
|
|
|
|
SET(VBAMCORE_LIBS ${VBAMCORE_LIBS} ${LIBINTL_LIB})
|
|
|
|
ENDIF(LIBINTL_LIB)
|
|
|
|
INCLUDE(CheckFunctionExists)
|
|
|
|
CHECK_FUNCTION_EXISTS(gettext GETTEXT_FN)
|
|
|
|
IF(NOT LIBINTL_INC OR NOT GETTEXT_FN)
|
more minor improvements for OS X build
Add Homebrew and MacPorts paths for findings headers and libraries.
Add -x objective-c++ to the C++ compile command so that conditionally
compiled ObjectiveC code for OS X can be supported.
Throw a fatal error if the user tries to enable ENABLE_ASM_CORE,
ENABLE_ASM_SCALERS or ENABLE_MMX on AMD64, as this is not supported yet.
If ENABLE_ASM_SCALERS is enabled, try to find a Homebrew or MacPorts
nasm before using the outdated XCode nasm.
For the future, if the user has only the old XCode nasm which does not
support 64 bit objects and the build is 64 bit, throw a fatal error.
For 32 bit builds with the old XCode nasm, use -f macho instead of -f
macho32, which is used if the version of nasm is > 2.0 .
Pass -DMACHO instead of -DELF and, on AMD64 (for the future) -D__AMD64__
for nasm on OS X.
Pass -D__AMD64__ to C++ compilation as well on AMD64, this will help
when we support AMD64 inline assembly.
Add support for automatically linking Homebrew keg-only gettext from
/usr/local/opt/gettext for ENABLE_NLS.
Fix copying Info.plist and vbam.icns to the .app bundle.
Add a key to the Info.plist to support sharp text on retina displays, as
per:
https://wiki.wxwidgets.org/WxMac-specific_topics#Retina_display_support
Set wxWidgets_USE_DEBUG to ON if CMAKE_BUILD_TYPE is "Debug". I'm not
sure this does anything or if I'm doing this correctly though.
Also set wxWidgets_USE_UNICODE to ON. Again, I'm not sure this does
anything or is in the right place.
Fix a bug in the config dir finding code in
wxvbamApp::GetConfigurationPath() updated in 8b8f2f7 to only use the
more top level dirs if there is a vbam.ini in them, not if they are
writable as well, and use the reverse order (starting with user local
dirs) to check for writable dirs and their writable parents. This fixes
a problem with the vbam.ini being written to the Plugins directory of
the .app bundle if it's writable instead of ~/Library/Application
Support/vbam as was intended.
2015-11-17 02:56:23 +00:00
|
|
|
MESSAGE(FATAL_ERROR "NLS requires libintl/gettext")
|
2011-05-25 11:55:46 +00:00
|
|
|
ENDIF(NOT LIBINTL_INC OR NOT GETTEXT_FN)
|
|
|
|
INCLUDE_DIRECTORIES(${LIBINTL_INC})
|
|
|
|
ENDIF(ENABLE_LINK)
|
2011-02-24 13:06:17 +00:00
|
|
|
endif( ENABLE_NLS )
|
|
|
|
|
2008-06-06 10:17:20 +00:00
|
|
|
# Compiler flags
|
more minor improvements for OS X build
Add Homebrew and MacPorts paths for findings headers and libraries.
Add -x objective-c++ to the C++ compile command so that conditionally
compiled ObjectiveC code for OS X can be supported.
Throw a fatal error if the user tries to enable ENABLE_ASM_CORE,
ENABLE_ASM_SCALERS or ENABLE_MMX on AMD64, as this is not supported yet.
If ENABLE_ASM_SCALERS is enabled, try to find a Homebrew or MacPorts
nasm before using the outdated XCode nasm.
For the future, if the user has only the old XCode nasm which does not
support 64 bit objects and the build is 64 bit, throw a fatal error.
For 32 bit builds with the old XCode nasm, use -f macho instead of -f
macho32, which is used if the version of nasm is > 2.0 .
Pass -DMACHO instead of -DELF and, on AMD64 (for the future) -D__AMD64__
for nasm on OS X.
Pass -D__AMD64__ to C++ compilation as well on AMD64, this will help
when we support AMD64 inline assembly.
Add support for automatically linking Homebrew keg-only gettext from
/usr/local/opt/gettext for ENABLE_NLS.
Fix copying Info.plist and vbam.icns to the .app bundle.
Add a key to the Info.plist to support sharp text on retina displays, as
per:
https://wiki.wxwidgets.org/WxMac-specific_topics#Retina_display_support
Set wxWidgets_USE_DEBUG to ON if CMAKE_BUILD_TYPE is "Debug". I'm not
sure this does anything or if I'm doing this correctly though.
Also set wxWidgets_USE_UNICODE to ON. Again, I'm not sure this does
anything or is in the right place.
Fix a bug in the config dir finding code in
wxvbamApp::GetConfigurationPath() updated in 8b8f2f7 to only use the
more top level dirs if there is a vbam.ini in them, not if they are
writable as well, and use the reverse order (starting with user local
dirs) to check for writable dirs and their writable parents. This fixes
a problem with the vbam.ini being written to the Plugins directory of
the .app bundle if it's writable instead of ~/Library/Application
Support/vbam as was intended.
2015-11-17 02:56:23 +00:00
|
|
|
IF(WIN32)
|
|
|
|
SET( CMAKE_ASM_NASM_FLAGS "${CMAKE_ASM_NASM_FLAGS} -I$(CMAKE_SOURCE_DIR)/src/filters/hq/asm/ -O1 -w-orphan-labels")
|
|
|
|
ELSEIF(APPLE)
|
|
|
|
SET( CMAKE_ASM_NASM_FLAGS "${CMAKE_ASM_NASM_FLAGS} -I$(CMAKE_SOURCE_DIR)/src/filters/hq/asm/ -O1 -DMACHO -w-orphan-labels")
|
|
|
|
ELSEIF("${CMAKE_SYSTEM}" MATCHES "Linux")
|
|
|
|
SET( CMAKE_ASM_NASM_FLAGS "${CMAKE_ASM_NASM_FLAGS} -I$(CMAKE_SOURCE_DIR)/src/filters/hq/asm/ -O1 -DELF -w-orphan-labels")
|
|
|
|
ENDIF()
|
|
|
|
|
|
|
|
IF(CMAKE_SYSTEM_PROCESSOR MATCHES "[xX]86|[aA][mM][dD]64|[xX]64" AND CMAKE_C_SIZEOF_DATA_PTR EQUAL 8)
|
|
|
|
ADD_DEFINITIONS( -D__AMD64__ )
|
|
|
|
SET(CMAKE_ASM_NASM_FLAGS "${CMAKE_ASM_NASM_FLAGS} -D__AMD64__")
|
|
|
|
ENDIF()
|
2011-02-26 12:11:06 +00:00
|
|
|
|
|
|
|
SET( CMAKE_C_FLAGS_RELEASE "-O3")
|
|
|
|
SET( CMAKE_CXX_FLAGS_RELEASE "-O3")
|
|
|
|
SET( CMAKE_C_FLAGS_DEBUG "-g -Wall")
|
|
|
|
SET( CMAKE_CXX_FLAGS_DEBUG "-g -Wall")
|
2008-06-06 10:17:20 +00:00
|
|
|
|
2015-05-28 15:12:31 +00:00
|
|
|
if (WIN32)
|
2015-06-12 02:14:33 +00:00
|
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -static-libgcc -static -I./dependencies/include")
|
2015-06-15 12:21:44 +00:00
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libgcc -static-libstdc++ -static -I./dependencies/include")
|
2015-05-28 15:12:31 +00:00
|
|
|
endif (WIN32)
|
2015-05-18 03:04:34 +00:00
|
|
|
|
|
|
|
|
2015-03-27 17:48:42 +00:00
|
|
|
add_subdirectory (fex)
|
2010-03-15 03:36:45 +00:00
|
|
|
|
2008-06-06 10:17:20 +00:00
|
|
|
SET(SRC_MAIN
|
|
|
|
src/Util.cpp
|
2015-04-18 06:53:55 +00:00
|
|
|
src/common/ConfigManager.cpp
|
|
|
|
src/common/dictionary.c
|
|
|
|
src/common/iniparser.c
|
2009-01-01 14:21:18 +00:00
|
|
|
src/common/Patch.cpp
|
|
|
|
src/common/memgzio.c
|
2011-05-24 07:49:00 +00:00
|
|
|
src/common/SoundSDL.cpp
|
2008-06-06 10:17:20 +00:00
|
|
|
)
|
|
|
|
|
2016-06-07 20:26:53 +00:00
|
|
|
SET(HDR_MAIN
|
|
|
|
src/AutoBuild.h
|
|
|
|
src/System.h
|
|
|
|
src/Util.h
|
|
|
|
src/version.h
|
|
|
|
src/common/array.h
|
|
|
|
src/common/ConfigManager.h
|
|
|
|
src/common/dictionary.h
|
|
|
|
src/common/iniparser.h
|
|
|
|
src/common/memgzio.h
|
|
|
|
src/common/Port.h
|
|
|
|
src/common/SoundDriver.h
|
|
|
|
src/common/SoundSDL.h
|
|
|
|
src/common/Types.h
|
|
|
|
)
|
|
|
|
|
2011-05-24 07:39:29 +00:00
|
|
|
if(ENABLE_FFMPEG)
|
|
|
|
SET(SRC_MAIN ${SRC_MAIN} src/common/ffmpeg.cpp)
|
2016-06-07 20:26:53 +00:00
|
|
|
SET(HDR_MAIN ${HDR_MAIN} src/common/ffmpeg.h)
|
2011-05-24 07:39:29 +00:00
|
|
|
endif(ENABLE_FFMPEG)
|
|
|
|
|
2016-06-07 20:26:53 +00:00
|
|
|
if(ENABLE_NLS)
|
|
|
|
SET(HDR_MAIN ${HDR_MAIN} src/NLS.h)
|
|
|
|
endif(ENABLE_NLS)
|
|
|
|
|
2009-01-01 15:20:03 +00:00
|
|
|
SET(SRC_GBA
|
|
|
|
src/gba/agbprint.cpp
|
2009-01-01 16:11:02 +00:00
|
|
|
src/gba/bios.cpp
|
2015-04-02 05:53:57 +00:00
|
|
|
src/gba/BreakpointStructures.cpp
|
2009-01-01 16:11:02 +00:00
|
|
|
src/gba/Cheats.cpp
|
2011-05-24 07:49:00 +00:00
|
|
|
src/gba/CheatSearch.cpp
|
2015-04-02 05:53:57 +00:00
|
|
|
src/gba/debugger-expr-lex.cpp
|
|
|
|
src/gba/debugger-expr-yacc.cpp
|
2009-01-01 16:11:02 +00:00
|
|
|
src/gba/EEprom.cpp
|
2015-03-27 22:50:11 +00:00
|
|
|
src/gba/ereader.cpp
|
2009-01-01 16:11:02 +00:00
|
|
|
src/gba/Flash.cpp
|
2009-01-01 15:20:03 +00:00
|
|
|
src/gba/GBA.cpp
|
|
|
|
src/gba/GBAGfx.cpp
|
2010-03-15 03:36:45 +00:00
|
|
|
src/gba/GBALink.cpp
|
|
|
|
src/gba/GBASockClient.cpp
|
2009-01-01 15:20:03 +00:00
|
|
|
src/gba/GBA-thumb.cpp
|
|
|
|
src/gba/GBA-arm.cpp
|
2009-10-09 14:47:41 +00:00
|
|
|
src/gba/gbafilter.cpp
|
2009-01-01 16:11:02 +00:00
|
|
|
src/gba/Globals.cpp
|
|
|
|
src/gba/Mode0.cpp
|
|
|
|
src/gba/Mode1.cpp
|
|
|
|
src/gba/Mode2.cpp
|
|
|
|
src/gba/Mode3.cpp
|
|
|
|
src/gba/Mode4.cpp
|
|
|
|
src/gba/Mode5.cpp
|
|
|
|
src/gba/RTC.cpp
|
|
|
|
src/gba/Sound.cpp
|
|
|
|
src/gba/Sram.cpp
|
2008-06-06 10:17:20 +00:00
|
|
|
)
|
|
|
|
|
2016-06-07 20:26:53 +00:00
|
|
|
SET(HDR_GBA
|
|
|
|
src/gba/agbprint.h
|
|
|
|
src/gba/bios.h
|
|
|
|
src/gba/BreakpointStructures.h
|
|
|
|
src/gba/Cheats.h
|
|
|
|
src/gba/CheatSearch.h
|
|
|
|
src/gba/debugger-expr-yacc.hpp
|
|
|
|
src/gba/EEprom.h
|
|
|
|
src/gba/ereader.h
|
|
|
|
src/gba/Flash.h
|
|
|
|
src/gba/GBA.h
|
|
|
|
src/gba/GBAcpu.h
|
|
|
|
src/gba/gbafilter.h
|
|
|
|
src/gba/GBAGfx.h
|
|
|
|
src/gba/GBAinline.h
|
|
|
|
src/gba/GBALink.h
|
|
|
|
src/gba/GBASockClient.h
|
|
|
|
src/gba/Globals.h
|
|
|
|
src/gba/RTC.h
|
|
|
|
src/gba/Sound.h
|
|
|
|
src/gba/Sram.h
|
|
|
|
)
|
|
|
|
|
2009-01-01 14:52:03 +00:00
|
|
|
SET(SRC_GB
|
|
|
|
src/gb/GB.cpp
|
|
|
|
src/gb/gbCheats.cpp
|
|
|
|
src/gb/gbDis.cpp
|
|
|
|
src/gb/gbGfx.cpp
|
|
|
|
src/gb/gbGlobals.cpp
|
|
|
|
src/gb/gbMemory.cpp
|
|
|
|
src/gb/gbPrinter.cpp
|
|
|
|
src/gb/gbSGB.cpp
|
|
|
|
src/gb/gbSound.cpp
|
2009-01-01 14:43:18 +00:00
|
|
|
)
|
|
|
|
|
2016-06-07 20:26:53 +00:00
|
|
|
SET(HDR_GB
|
|
|
|
src/gb/gb.h
|
|
|
|
src/gb/gbCheats.h
|
|
|
|
src/gb/gbCodes.h
|
|
|
|
src/gb/gbCodesCB.h
|
|
|
|
src/gb/gbGlobals.h
|
|
|
|
src/gb/gbMemory.h
|
|
|
|
src/gb/gbPrinter.h
|
|
|
|
src/gb/gbSGB.h
|
|
|
|
src/gb/gbSound.h
|
|
|
|
)
|
|
|
|
|
2009-01-01 14:43:18 +00:00
|
|
|
SET(SRC_APU
|
|
|
|
src/apu/Blip_Buffer.cpp
|
|
|
|
src/apu/Effects_Buffer.cpp
|
|
|
|
src/apu/Gb_Apu.cpp
|
|
|
|
src/apu/Gb_Apu_State.cpp
|
|
|
|
src/apu/Gb_Oscs.cpp
|
|
|
|
src/apu/Multi_Buffer.cpp
|
2008-06-06 10:17:20 +00:00
|
|
|
)
|
|
|
|
|
2016-06-07 20:26:53 +00:00
|
|
|
SET(HDR_APU
|
|
|
|
src/apu/blargg_common.h #Unused(?) but in the VS projects
|
|
|
|
src/apu/blargg_config.h #Unused(?) but in the VS projects
|
|
|
|
src/apu/blargg_source.h
|
|
|
|
src/apu/Blip_Buffer.h
|
|
|
|
src/apu/Effects_Buffer.h
|
|
|
|
src/apu/Gb_Apu.h
|
|
|
|
src/apu/Gb_Oscs.h
|
|
|
|
src/apu/Multi_Buffer.h
|
|
|
|
)
|
|
|
|
|
2008-06-06 10:17:20 +00:00
|
|
|
SET(SRC_SDL
|
|
|
|
src/sdl/SDL.cpp
|
|
|
|
src/sdl/filters.cpp
|
|
|
|
src/sdl/text.cpp
|
2008-08-30 17:50:51 +00:00
|
|
|
src/sdl/inputSDL.cpp
|
2008-08-29 10:23:51 +00:00
|
|
|
src/sdl/expr.cpp
|
|
|
|
src/sdl/exprNode.cpp
|
|
|
|
src/sdl/expr-lex.cpp
|
2008-06-06 10:17:20 +00:00
|
|
|
)
|
|
|
|
|
2016-06-07 20:26:53 +00:00
|
|
|
SET(HDR_SDL
|
|
|
|
src/sdl/filters.h
|
|
|
|
src/sdl/text.h
|
|
|
|
src/sdl/inputSDL.h
|
|
|
|
src/sdl/expr.cpp.h
|
|
|
|
src/sdl/exprNode.h
|
|
|
|
)
|
|
|
|
|
2009-01-01 13:02:35 +00:00
|
|
|
SET(SRC_FILTERS
|
|
|
|
src/filters/2xSaI.cpp
|
|
|
|
src/filters/admame.cpp
|
|
|
|
src/filters/bilinear.cpp
|
|
|
|
src/filters/hq2x.cpp
|
|
|
|
src/filters/interframe.cpp
|
|
|
|
src/filters/pixel.cpp
|
|
|
|
src/filters/scanline.cpp
|
2011-05-25 11:55:46 +00:00
|
|
|
src/filters/simpleFilter.cpp
|
2015-03-19 01:44:47 +00:00
|
|
|
src/filters/xbrzfilter.cpp
|
|
|
|
src/filters/xBRZ/xbrz.cpp
|
2009-01-01 13:02:35 +00:00
|
|
|
)
|
|
|
|
|
2016-06-07 20:26:53 +00:00
|
|
|
SET(HDR_FILTERS
|
|
|
|
src/filters/hq2x.h
|
|
|
|
src/filters/interp.h
|
|
|
|
src/filters/lq2x.h
|
|
|
|
src/filters/xBRZ/config.h
|
|
|
|
src/filters/xBRZ/xbrz.h
|
|
|
|
)
|
|
|
|
|
2008-06-06 10:17:20 +00:00
|
|
|
SET(SRC_HQ_C
|
2009-01-01 13:02:35 +00:00
|
|
|
src/filters/hq/c/hq_implementation.cpp
|
2008-06-06 10:17:20 +00:00
|
|
|
)
|
|
|
|
|
2016-06-07 20:26:53 +00:00
|
|
|
SET(HDR_HQ_C
|
|
|
|
src/filters/hq/c/hq3x_pattern.h
|
|
|
|
src/filters/hq/c/hq4x_pattern.h
|
|
|
|
src/filters/hq/c/hq_base.h
|
|
|
|
src/filters/hq/c/hq_shared.h
|
|
|
|
)
|
|
|
|
|
2008-06-06 10:17:20 +00:00
|
|
|
SET(SRC_HQ_ASM
|
2009-01-01 13:02:35 +00:00
|
|
|
src/filters/hq/asm/hq3x_16.asm
|
|
|
|
src/filters/hq/asm/hq3x_32.asm
|
|
|
|
src/filters/hq/asm/hq4x_16.asm
|
|
|
|
src/filters/hq/asm/hq4x_32.asm
|
|
|
|
src/filters/hq/asm/hq3x32.cpp
|
2008-06-06 10:17:20 +00:00
|
|
|
)
|
|
|
|
|
2011-05-25 11:55:46 +00:00
|
|
|
if( ENABLE_ASM_SCALERS )
|
|
|
|
SET(SRC_FILTERS ${SRC_FILTERS} ${SRC_HQ_ASM})
|
|
|
|
else( ENABLE_ASM_SCALERS )
|
|
|
|
SET(SRC_FILTERS ${SRC_FILTERS} ${SRC_HQ_C})
|
2016-06-07 20:26:53 +00:00
|
|
|
SET(HDR_FILTERS ${HDR_FILTERS} ${HDR_HQ_C})
|
2011-05-25 11:55:46 +00:00
|
|
|
ADD_DEFINITIONS ( -DNO_ASM )
|
|
|
|
endif( ENABLE_ASM_SCALERS )
|
|
|
|
|
2011-02-24 11:14:59 +00:00
|
|
|
if( ENABLE_DEBUGGER )
|
2008-06-16 20:18:49 +00:00
|
|
|
SET(SRC_DEBUGGER
|
2009-01-01 16:11:02 +00:00
|
|
|
src/gba/armdis.cpp
|
|
|
|
src/gba/elf.cpp
|
|
|
|
src/gba/remote.cpp
|
2008-06-16 20:18:49 +00:00
|
|
|
)
|
2016-06-07 20:26:53 +00:00
|
|
|
SET(HDR_DEBUGGER
|
|
|
|
src/gba/armdis.h
|
|
|
|
src/gba/elf.h
|
|
|
|
src/gba/remote.h
|
|
|
|
)
|
2011-02-24 11:14:59 +00:00
|
|
|
endif( ENABLE_DEBUGGER )
|
2008-06-16 20:18:49 +00:00
|
|
|
|
2008-08-03 21:02:37 +00:00
|
|
|
INCLUDE_DIRECTORIES(
|
2008-06-06 16:42:31 +00:00
|
|
|
${ZLIB_INCLUDE_DIR}
|
2010-03-15 03:36:45 +00:00
|
|
|
fex
|
2008-10-20 16:30:07 +00:00
|
|
|
${PNG_INCLUDE_DIR}
|
2015-11-19 02:34:38 +00:00
|
|
|
${SDL2_INCLUDE_DIR}
|
2008-06-06 10:17:20 +00:00
|
|
|
)
|
|
|
|
|
2012-05-23 06:19:44 +00:00
|
|
|
IF( ENABLE_FFMPEG )
|
|
|
|
INCLUDE_DIRECTORIES(
|
|
|
|
${FFMPEG_INCLUDE_DIRS}
|
|
|
|
)
|
|
|
|
ENDIF( ENABLE_FFMPEG )
|
|
|
|
|
2008-06-06 10:17:20 +00:00
|
|
|
ADD_LIBRARY (
|
|
|
|
vbamcore
|
2015-05-10 22:54:19 +00:00
|
|
|
STATIC
|
2008-06-06 10:17:20 +00:00
|
|
|
${PROJECT_SRCS}
|
|
|
|
${SRC_MAIN}
|
2016-06-07 20:26:53 +00:00
|
|
|
${HDR_MAIN}
|
2009-01-01 15:20:03 +00:00
|
|
|
${SRC_GBA}
|
2016-06-07 20:26:53 +00:00
|
|
|
${HDR_GBA}
|
2009-01-01 14:52:03 +00:00
|
|
|
${SRC_GB}
|
2016-06-07 20:26:53 +00:00
|
|
|
${HDR_GB}
|
2009-01-01 14:43:18 +00:00
|
|
|
${SRC_APU}
|
2016-06-07 20:26:53 +00:00
|
|
|
${HDR_APU}
|
2009-01-01 13:02:35 +00:00
|
|
|
${SRC_FILTERS}
|
2016-06-07 20:26:53 +00:00
|
|
|
${HDR_FILTERS}
|
2008-06-16 20:18:49 +00:00
|
|
|
${SRC_DEBUGGER}
|
2016-06-07 20:26:53 +00:00
|
|
|
${HDR_DEBUGGER}
|
2008-06-06 10:17:20 +00:00
|
|
|
)
|
|
|
|
|
2011-02-24 11:14:59 +00:00
|
|
|
IF( ENABLE_SDL )
|
2008-06-06 10:17:20 +00:00
|
|
|
ADD_EXECUTABLE (
|
|
|
|
vbam
|
|
|
|
WIN32
|
|
|
|
${SRC_SDL}
|
2016-06-07 20:26:53 +00:00
|
|
|
${HDR_SDL}
|
2008-06-06 10:17:20 +00:00
|
|
|
)
|
|
|
|
|
2008-06-06 16:42:31 +00:00
|
|
|
IF( WIN32 )
|
|
|
|
SET( WIN32_LIBRARIES wsock32 )
|
|
|
|
ENDIF( WIN32 )
|
|
|
|
|
2011-02-24 11:14:59 +00:00
|
|
|
IF( ENABLE_LIRC )
|
2008-08-03 21:02:37 +00:00
|
|
|
SET( LIRC_CLIENT_LIBRARY lirc_client )
|
2011-02-24 11:14:59 +00:00
|
|
|
ENDIF( ENABLE_LIRC )
|
2008-08-03 21:02:37 +00:00
|
|
|
|
2008-06-06 10:17:20 +00:00
|
|
|
TARGET_LINK_LIBRARIES (
|
|
|
|
vbam
|
2011-05-25 11:55:46 +00:00
|
|
|
${VBAMCORE_LIBS}
|
2008-06-06 16:42:31 +00:00
|
|
|
${WIN32_LIBRARIES}
|
2008-08-03 21:02:37 +00:00
|
|
|
${LIRC_CLIENT_LIBRARY}
|
2008-06-06 10:17:20 +00:00
|
|
|
)
|
2015-03-27 17:48:42 +00:00
|
|
|
IF( WIN32 )
|
2015-09-30 03:49:15 +00:00
|
|
|
INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/visualboyadvance-m${CMAKE_EXECUTABLE_SUFFIX} DESTINATION bin)
|
2015-03-27 17:48:42 +00:00
|
|
|
ELSE( WIN32 )
|
|
|
|
INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/vbam DESTINATION bin)
|
|
|
|
ENDIF( WIN32 )
|
|
|
|
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/sdl/vbam.cfg-example
|
2015-11-19 02:34:38 +00:00
|
|
|
DESTINATION ${CMAKE_INSTALL_PREFIX}/${SYSCONFDIR}
|
2015-03-27 17:48:42 +00:00
|
|
|
RENAME vbam.cfg)
|
2011-02-24 11:14:59 +00:00
|
|
|
ENDIF( ENABLE_SDL )
|
2008-06-06 10:17:20 +00:00
|
|
|
|
2015-11-19 02:34:38 +00:00
|
|
|
IF( ENABLE_GTK OR ENABLE_GTK3 )
|
2015-03-27 17:48:42 +00:00
|
|
|
add_subdirectory (src/gtk)
|
2015-11-19 02:34:38 +00:00
|
|
|
ENDIF( ENABLE_GTK OR ENABLE_GTK3 )
|
2011-05-25 11:55:46 +00:00
|
|
|
|
|
|
|
IF( ENABLE_WX )
|
|
|
|
add_subdirectory(src/wx)
|
|
|
|
ENDIF( ENABLE_WX )
|
|
|
|
|
2015-11-19 02:34:38 +00:00
|
|
|
if( ENABLE_GTK OR ENABLE_GTK3 OR ENABLE_WX )
|
2011-02-24 17:46:59 +00:00
|
|
|
# Native Language Support
|
|
|
|
if( ENABLE_NLS )
|
|
|
|
add_subdirectory(po)
|
|
|
|
endif( ENABLE_NLS )
|
2015-11-19 02:34:38 +00:00
|
|
|
endif( ENABLE_GTK OR ENABLE_GTK3 OR ENABLE_WX )
|
2015-03-27 17:48:42 +00:00
|
|
|
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/vba-over.ini DESTINATION ${DATA_INSTALL_DIR})
|
|
|
|
IF(NOT APPLE)
|
|
|
|
INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/src/gtk/icons/ DESTINATION share/icons/hicolor PATTERN ".svn" EXCLUDE)
|
2015-04-05 04:28:40 +00:00
|
|
|
ENDIF(NOT APPLE)
|
2015-05-18 00:28:34 +00:00
|
|
|
|
|
|
|
# manual pages
|
|
|
|
IF( UNIX )
|
|
|
|
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/debian/vbam.1 DESTINATION ${CMAKE_INSTALL_PREFIX}/share/man/man1)
|
|
|
|
IF( ENABLE_GTK )
|
|
|
|
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/debian/gvbam.1 DESTINATION ${CMAKE_INSTALL_PREFIX}/share/man/man1)
|
|
|
|
ENDIF( ENABLE_GTK )
|
|
|
|
IF( ENABLE_WX )
|
|
|
|
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/debian/wxvbam.1 DESTINATION ${CMAKE_INSTALL_PREFIX}/share/man/man1)
|
|
|
|
ENDIF( ENABLE_WX )
|
|
|
|
ENDIF( UNIX )
|
|
|
|
|
2015-04-05 04:28:40 +00:00
|
|
|
SET(CPACK_GENERATOR "ZIP")
|
2015-06-15 13:00:47 +00:00
|
|
|
set(CPACK_SOURCE_GENERATOR "TGZ")
|
2015-05-18 02:41:21 +00:00
|
|
|
SET(CPACK_PACKAGE_VERSION_MAJOR "2")
|
|
|
|
SET(CPACK_PACKAGE_VERSION_MINOR "0")
|
2015-06-15 13:00:47 +00:00
|
|
|
SET(CPACK_PACKAGE_VERSION_PATCH "0-Git-" ${COMMITHASH})
|
2015-06-15 13:20:20 +00:00
|
|
|
list(APPEND CPACK_SOURCE_IGNORE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/dependencies")
|
2015-05-18 00:28:34 +00:00
|
|
|
INCLUDE(CPack)
|