visualboyadvance-m/CMakeLists.txt

216 lines
4.8 KiB
CMake

cmake_minimum_required(VERSION 2.4.0)
SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/CMakeScripts)
INCLUDE(CMakeScripts/CMakeDetermineASMCompiler.cmake)
INCLUDE(CMakeScripts/CMakeASMInformation.cmake)
PROJECT(VBA-M ASM C CXX)
FIND_PACKAGE ( ZLIB REQUIRED )
FIND_PACKAGE ( PNG REQUIRED )
FIND_PACKAGE ( OpenGL REQUIRED )
FIND_PACKAGE ( PkgConfig REQUIRED )
PKG_CHECK_MODULES ( GTKMM gtkmm-2.4 )
PKG_CHECK_MODULES ( GLIBMM glibmm-2.4 )
PKG_CHECK_MODULES ( GLADEMM libglademm-2.4 )
PKG_CHECK_MODULES ( PORTAUDIO portaudio-2.0 )
PKG_CHECK_MODULES ( SDL sdl )
IF( SDL_FOUND )
SET( CAN_BUILD_VBAM 1 )
ENDIF( SDL_FOUND )
IF( GLIBMM_FOUND AND GTKMM_FOUND AND GLADEMM_FOUND AND PORTAUDIO_FOUND )
SET( CAN_BUILD_GVBAM 1 )
ENDIF( GLIBMM_FOUND AND GTKMM_FOUND AND GLADEMM_FOUND AND PORTAUDIO_FOUND )
IF( NOT DATA_INSTALL_DIR )
SET( DATA_INSTALL_DIR "src/gtk" )
SET( PKGDATADIR ${DATA_INSTALL_DIR} )
ELSE( NOT DATA_INSTALL_DIR )
SET( PKGDATADIR ${CMAKE_INSTALL_PREFIX}/${DATA_INSTALL_DIR} )
ENDIF( NOT DATA_INSTALL_DIR )
IF( NOT SYSCONFDIR )
SET( SYSCONFDIR "/etc" )
ENDIF( NOT SYSCONFDIR )
IF( NOT VERSION )
SET( VERSION "1.8.0-SVN" )
ENDIF( NOT VERSION )
ADD_DEFINITIONS (-DHAVE_NETINET_IN_H -DHAVE_ARPA_INET_H -DHAVE_ZLIB_H -DFINAL_VERSION -DBKPT_SUPPORT -DSDL -DUSE_OPENGL -DC_CORE -DSYSCONFDIR='"${SYSCONFDIR}"')
ADD_DEFINITIONS (-DVERSION='"${VERSION}"' -DPKGDATADIR='"${PKGDATADIR}"' -DPACKAGE='')
SET( CMAKE_ASM_FLAGS "-Isrc/hq/asm/ -O1 -DELF")
SET( CMAKE_C_FLAGS "-O3")
SET( CMAKE_CXX_FLAGS "-O3")
SET(SRC_MAIN
src/2xSaI.cpp
src/admame.cpp
src/armdis.cpp
src/bilinear.cpp
src/bios.cpp
src/Cheats.cpp
src/CheatSearch.cpp
src/EEprom.cpp src/elf.cpp
src/Flash.cpp
src/Globals.cpp
src/interframe.cpp
src/hq2x.cpp
src/Mode0.cpp
src/Mode1.cpp
src/Mode2.cpp
src/Mode3.cpp
src/Mode4.cpp
src/Mode5.cpp
src/pixel.cpp
src/remote.cpp
src/RTC.cpp
src/scanline.cpp
src/Sound.cpp
src/Sram.cpp
src/Util.cpp
src/expr.cpp
src/exprNode.cpp
src/expr-lex.cpp
src/memgzio.c
)
SET(SRC_AGB
src/agb/agbprint.cpp
src/agb/GBA.cpp
src/agb/gbafilter.cpp
src/agb/GBAGfx.cpp
src/agb/GBA-thumb.cpp
src/agb/GBA-arm.cpp
)
SET(SRC_DMG
src/dmg/GB.cpp
src/dmg/gbCheats.cpp
src/dmg/gbDis.cpp
src/dmg/gbGfx.cpp
src/dmg/gbGlobals.cpp
src/dmg/gbMemory.cpp
src/dmg/gbPrinter.cpp
src/dmg/gbSGB.cpp
src/dmg/gbSound.cpp
src/dmg/gb_apu/Blip_Buffer.cpp
src/dmg/gb_apu/Effects_Buffer.cpp
src/dmg/gb_apu/Gb_Apu.cpp
src/dmg/gb_apu/Gb_Apu_State.cpp
src/dmg/gb_apu/Gb_Oscs.cpp
src/dmg/gb_apu/Multi_Buffer.cpp
)
SET(SRC_SDL
src/sdl/debugger.cpp
src/sdl/SDL.cpp
src/sdl/dummy.cpp
src/sdl/filters.cpp
src/sdl/text.cpp
src/sdl/sndSDL.cpp
)
SET(SRC_FEX_MINI
src/fex_mini.cpp
)
SET(SRC_HQ_C
src/hq/c/hq_implementation.cpp
)
SET(SRC_HQ_ASM
src/hq/asm/hq3x_16.asm
src/hq/asm/hq3x_32.asm
src/hq/asm/hq4x_16.asm
src/hq/asm/hq4x_32.asm
src/hq/asm/hq3x32.cpp
)
SET(SRC_GTK
src/gtk/configfile.cpp
src/gtk/input.cpp
src/gtk/main.cpp
src/gtk/system.cpp
src/gtk/windowcallbacks.cpp
src/gtk/filters.cpp
src/gtk/joypadconfig.cpp
src/gtk/screenarea.cpp
src/gtk/tools.cpp
src/gtk/window.cpp
src/gtk/sndPortAudio.cpp
)
IF(CMAKE_ASM_COMPILER_LOADED AND USEASM)
SET(SRC_HQ ${SRC_HQ_ASM})
ELSE(CMAKE_ASM_COMPILER_LOADED AND USEASM)
SET(SRC_HQ ${SRC_HQ_C})
ENDIF(CMAKE_ASM_COMPILER_LOADED AND USEASM)
include_directories(
${GTKMM_INCLUDE_DIRS}
${GLADEMM_INCLUDE_DIRS}
${SDL_INCLUDE_DIR}
)
ADD_LIBRARY (
vbamcore
${PROJECT_SRCS}
${SRC_MAIN}
${SRC_AGB}
${SRC_DMG}
${SRC_FEX_MINI}
)
IF( CAN_BUILD_VBAM )
ADD_EXECUTABLE (
vbam
WIN32
MACOSX_BUNDLE
${SRC_SDL}
${SRC_HQ}
)
TARGET_LINK_LIBRARIES (
vbam
vbamcore
${SDL_LIBRARIES}
${ZLIB_LIBRARY}
${PNG_LIBRARY}
${OPENGL_LIBRARY}
)
INSTALL(PROGRAMS vbam DESTINATION bin)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/sdl/VisualBoyAdvance.cfg-example
DESTINATION ${SYSCONFDIR}
RENAME VisualBoyAdvance.cfg)
ENDIF( CAN_BUILD_VBAM )
IF( CAN_BUILD_GVBAM )
ADD_EXECUTABLE (
gvbam
WIN32
MACOSX_BUNDLE
${SRC_GTK}
)
TARGET_LINK_LIBRARIES (
gvbam
vbamcore
${ZLIB_LIBRARY}
${PNG_LIBRARY}
${GLADEMM_LIBRARIES}
${PORTAUDIO_LIBRARIES}
)
INSTALL(PROGRAMS gvbam DESTINATION bin)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/gtk/vba.glade DESTINATION ${DATA_INSTALL_DIR})
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/gtk/icons/vba-m.png DESTINATION ${DATA_INSTALL_DIR}/icons)
ENDIF( CAN_BUILD_GVBAM )