all repos — mgba @ bce620e7172fd325bde926b81c554614274d0090

mGBA Game Boy Advance Emulator

Split SDL build into its own CMake list
Jeffrey Pfau jeffrey@endrift.com
Fri, 31 Jan 2014 00:11:19 -0800
commit

bce620e7172fd325bde926b81c554614274d0090

parent

80511fcb9fe89f3b226fd02053f8afb2cb93fb0e

2 files changed, 35 insertions(+), 30 deletions(-)

jump to
M CMakeLists.txtCMakeLists.txt

@@ -4,7 +4,8 @@ set(BINARY_NAME gbac CACHE INTERNAL "Name of output binaries")

set(CMAKE_C_FLAGS_DEBUG "-g -Wall -Wextra -Wno-error=type-limits --std=gnu99") set(CMAKE_C_FLAGS_RELEASE "-O3 -Wall -Wextra --std=gnu99") set(USE_DEBUGGER ON CACHE BOOL "Whether or not to enable the ARM debugger") -set(EXTRA_LIB "") +set(BUILD_SDL ON CACHE BOOL "Build SDL frontend") +set(BUILD_PERF ON CACHE BOOL "Build performance profiling tool") file(GLOB ARM_SRC ${CMAKE_SOURCE_DIR}/src/arm/*.c) file(GLOB GBA_SRC ${CMAKE_SOURCE_DIR}/src/gba/*.c) file(GLOB UTIL_SRC ${CMAKE_SOURCE_DIR}/src/util/*.[cS])

@@ -23,13 +24,6 @@ set(OS_LIBRARY "${OS_LIBRARY};pthread")

file(GLOB OS_SRC ${CMAKE_SOURCE_DIR}/src/platform/posix/*.c) endif() -if(NOT BUILD_PERF) - find_package(SDL 1.2 REQUIRED) - file(GLOB PLATFORM_SRC ${CMAKE_SOURCE_DIR}/src/platform/sdl/sdl-*.c) - set(PLATFORM_LIBRARY "${SDL_LIBRARY};${SDLMAIN_LIBRARY}") - include_directories(${CMAKE_SOURCE_DIR}/src/platform/sdl) -endif() - if(USE_DEBUGGER) file(GLOB DEBUGGER_SRC ${CMAKE_SOURCE_DIR}/src/debugger/*.c) set(DEBUGGER_LIB "edit")

@@ -39,31 +33,19 @@ set(DEBUGGER_SRC "")

set(DEBUGGER_LIB "") endif() -if(BUILD_RASPI AND BUILD_EGL) - set(MAIN_SRC ${CMAKE_SOURCE_DIR}/src/platform/sdl/egl-main.c) - set(OPENGL_LIBRARY "-lEGL -lGLESv2 -lbcm_host") - set(OPENGL_INCLUDE_DIR "") - add_definitions(-DBUILD_RASPI) -elseif(BUILD_BBB OR BUILD_RASPI) - enable_language(ASM) - add_definitions(-DCOLOR_16_BIT -DCOLOR_5_6_5) - set(MAIN_SRC ${CMAKE_SOURCE_DIR}/src/platform/sdl/sw-main.c) -else() - set(MAIN_SRC ${CMAKE_SOURCE_DIR}/src/platform/sdl/gl-main.c) - find_package(OpenGL REQUIRED) - include_directories(${SDL_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR}) +add_library(${BINARY_NAME} SHARED ${ARM_SRC} ${GBA_SRC} ${DEBUGGER_SRC} ${RENDERER_SRC} ${UTIL_SRC} ${OS_SRC}) +target_link_libraries(${BINARY_NAME} m ${DEBUGGER_LIB} ${OS_LIB}) + +if(BUILD_SDL) + add_subdirectory(src/platform/sdl) endif() if(BUILD_PERF) - set(MAIN_SRC ${CMAKE_SOURCE_DIR}/src/platform/perf-main.c) + set(PERF_SRC ${CMAKE_SOURCE_DIR}/src/platform/perf-main.c) if(UNIX AND NOT APPLE) - set(PLATFORM_LIB "${PLATFORM_LIB};rt") + set(PERF_LIB "$PERF_LIB};rt") endif() -endif() -add_library(${BINARY_NAME} SHARED ${ARM_SRC} ${GBA_SRC} ${DEBUGGER_SRC} ${RENDERER_SRC} ${UTIL_SRC} ${OS_SRC}) -target_link_libraries(${BINARY_NAME} m ${DEBUGGER_LIB} ${OS_LIB}) - -add_executable(${BINARY_NAME}-bin WIN32 ${PLATFORM_SRC} ${MAIN_SRC}) -target_link_libraries(${BINARY_NAME}-bin ${BINARY_NAME} ${PLATFORM_LIBRARY} ${OPENGL_LIBRARY}) -set_target_properties(${BINARY_NAME}-bin PROPERTIES OUTPUT_NAME ${BINARY_NAME}) + add_executable(${BINARY_NAME}-perf ${PERF_SRC}) + target_link_libraries(${BINARY_NAME}-perf ${BINARY_NAME} ${PERF_LIBRARY}) +endif()
A src/platform/sdl/CMakeLists.txt

@@ -0,0 +1,23 @@

+find_package(SDL 1.2 REQUIRED) +file(GLOB PLATFORM_SRC ${CMAKE_SOURCE_DIR}/src/platform/sdl/sdl-*.c) +set(PLATFORM_LIBRARY "${SDL_LIBRARY};${SDLMAIN_LIBRARY}") +include_directories(${CMAKE_SOURCE_DIR}/src/platform/sdl) + +if(BUILD_RASPI AND BUILD_EGL) + set(MAIN_SRC ${CMAKE_SOURCE_DIR}/src/platform/sdl/egl-main.c) + set(OPENGL_LIBRARY "-lEGL -lGLESv2 -lbcm_host") + set(OPENGL_INCLUDE_DIR "") + add_definitions(-DBUILD_RASPI) +elseif(BUILD_BBB OR BUILD_RASPI) + enable_language(ASM) + add_definitions(-DCOLOR_16_BIT -DCOLOR_5_6_5) + set(MAIN_SRC ${CMAKE_SOURCE_DIR}/src/platform/sdl/sw-main.c) +else() + set(MAIN_SRC ${CMAKE_SOURCE_DIR}/src/platform/sdl/gl-main.c) + find_package(OpenGL REQUIRED) + include_directories(${SDL_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR}) +endif() + +add_executable(${BINARY_NAME}-sdl WIN32 ${PLATFORM_SRC} ${MAIN_SRC}) +target_link_libraries(${BINARY_NAME}-sdl ${BINARY_NAME} ${PLATFORM_LIBRARY} ${OPENGL_LIBRARY}) +set_target_properties(${BINARY_NAME}-sdl PROPERTIES OUTPUT_NAME ${BINARY_NAME})