Split SDL build into its own CMake list
Jeffrey Pfau jeffrey@endrift.com
Fri, 31 Jan 2014 00:11:19 -0800
2 files changed,
35 insertions(+),
30 deletions(-)
M
CMakeLists.txt
→
CMakeLists.txt
@@ -5,7 +5,8 @@ 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(BUILD_QT ON CACHE BOOL "Build Qt frontend") -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])@@ -24,13 +25,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")@@ -40,34 +34,22 @@ 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() if(BUILD_QT) add_subdirectory(src/platform/qt)
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})