CMake: Begin cleanup

This commit is contained in:
Vicki Pfau 2019-06-20 13:46:54 -07:00
parent abc5fbeb38
commit 227121e676
11 changed files with 325 additions and 129 deletions

View File

@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.1)
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/src/platform/cmake/")
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/src/platform/cmake/")
if(POLICY CMP0025)
cmake_policy(SET CMP0025 NEW)
@ -81,38 +81,9 @@ else()
endif()
endif()
file(GLOB ARM_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/arm/*.c)
file(GLOB ARM_TEST_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/arm/test/*.c)
file(GLOB LR35902_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/lr35902/*.c)
file(GLOB LR35902_TEST_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/lr35902/test/*.c)
file(GLOB GBA_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/gba/*.c)
file(GLOB GBA_TEST_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/gba/test/*.c)
file(GLOB GB_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/gb/*.c)
file(GLOB GB_TEST_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/gb/test/*.c)
file(GLOB GBA_CHEATS_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/gba/cheats/*.c)
file(GLOB GBA_EXTRA_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/gba/extra/audio-mixer.c)
file(GLOB GBA_RR_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/gba/rr/*.c)
file(GLOB CORE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/core/*.c)
file(GLOB CORE_TEST_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/core/test/*.c)
file(GLOB UTIL_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/util/*.c)
file(GLOB UTIL_TEST_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/util/test/*.c)
file(GLOB GUI_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/util/gui/*.c ${CMAKE_CURRENT_SOURCE_DIR}/src/feature/gui/*.c)
file(GLOB GBA_RENDERER_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/gba/renderers/*.c)
file(GLOB GBA_SIO_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/gba/sio/*.c)
file(GLOB GBA_EXTRA_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/gba/extra/*.c)
file(GLOB GB_SIO_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/gb/sio/*.c)
file(GLOB GB_RENDERER_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/gb/renderers/*.c)
file(GLOB GB_EXTRA_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/gb/extra/*.c)
file(GLOB THIRD_PARTY_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/third-party/inih/*.c)
file(GLOB EXTRA_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/feature/*.c)
set(CORE_VFS_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/util/vfs/vfs-mem.c ${CMAKE_CURRENT_SOURCE_DIR}/src/util/vfs/vfs-fifo.c)
set(VFS_SRC)
source_group("ARM core" FILES ${ARM_SRC})
source_group("LR35902 core" FILES ${LR35902_SRC})
source_group("GBA board" FILES ${GBA_SRC} ${GBA_RENDERER_SRC} ${GBA_SIO_SRC})
source_group("GBA extra" FILES ${GBA_CHEATS_SRC} ${GBA_RR_SRC})
source_group("GB board" FILES ${GB_SRC} ${GB_SIO_SRC})
source_group("Utilities" FILES ${UTIL_SRC})
include_directories(BEFORE ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_BINARY_DIR}/include)
if(NOT CMAKE_BUILD_TYPE)
@ -154,54 +125,7 @@ if (NOT DEFINED MANDIR)
set(MANDIR ${CMAKE_INSTALL_MANDIR})
endif()
# Function definitions
include(FindPkgConfig)
function(find_feature FEATURE_NAME FEATURE_REQUIRES)
if (NOT ${FEATURE_NAME})
return()
endif()
if (DISABLE_DEPS)
set(${FEATURE_NAME} OFF PARENT_SCOPE)
return()
endif()
foreach(REQUIRE ${FEATURE_REQUIRES})
if(NOT ${REQUIRE}_FOUND)
find_package(${REQUIRE} QUIET)
if(NOT ${REQUIRE}_FOUND)
pkg_search_module(${REQUIRE} ${REQUIRE})
if (NOT ${REQUIRE}_FOUND)
message(WARNING "Requested module ${REQUIRE} missing for feature ${FEATURE_NAME}. Feature disabled.")
set(${FEATURE_NAME} OFF PARENT_SCOPE)
return()
endif()
endif()
endif()
string(TOUPPER ${REQUIRE} UREQUIRE)
set(${UREQUIRE}_CFLAGS_OTHER ${${REQUIRE}_CFLAGS_OTHER} PARENT_SCOPE)
set(${UREQUIRE}_FOUND ${${REQUIRE}_FOUND} PARENT_SCOPE)
set(${UREQUIRE}_INCLUDE_DIRS ${${REQUIRE}_INCLUDE_DIRS} PARENT_SCOPE)
set(${UREQUIRE}_VERSION_STRING ${${REQUIRE}_VERSION_STRING} PARENT_SCOPE)
if (APPLE)
set(IS_FRAMEWORK OFF)
set(LIBS)
foreach(LIB IN LISTS ${REQUIRE}_LIBRARIES)
if(LIB STREQUAL "-framework")
set(IS_FRAMEWORK ON)
elseif(IS_FRAMEWORK)
list(APPEND LIBS "-framework ${LIB}")
set(IS_FRAMEWORK OFF)
else()
list(APPEND LIBS ${LIB})
endif()
endforeach()
set(${UREQUIRE}_LIBRARIES ${LIBS} PARENT_SCOPE)
else()
set(${UREQUIRE}_LIBRARIES ${${REQUIRE}_LIBRARIES} PARENT_SCOPE)
endif()
set(${UREQUIRE}_LIBRARY_DIRS ${${REQUIRE}_LIBRARY_DIRS} PARENT_SCOPE)
set(${UREQUIRE}_LDFLAGS_OTHER ${${REQUIRE}_LDFLAGS_OTHER} PARENT_SCOPE)
endforeach()
endfunction()
include(FindFeature)
# Version information
add_custom_target(version-info ALL
@ -215,7 +139,6 @@ add_custom_target(version-info ALL
include(${CMAKE_CURRENT_SOURCE_DIR}/version.cmake)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/core/version.c.in ${CMAKE_CURRENT_BINARY_DIR}/version.c)
list(APPEND UTIL_SRC ${CMAKE_CURRENT_BINARY_DIR}/version.c)
source_group("Generated sources" FILES ${CMAKE_CURRENT_BINARY_DIR}/version.c)
# Advanced settings
@ -559,13 +482,8 @@ if(USE_FFMPEG)
endif()
# Features
set(DEBUGGER_SRC
${CMAKE_CURRENT_SOURCE_DIR}/src/debugger/debugger.c
${CMAKE_CURRENT_SOURCE_DIR}/src/debugger/parser.c
${CMAKE_CURRENT_SOURCE_DIR}/src/debugger/symbols.c
${CMAKE_CURRENT_SOURCE_DIR}/src/debugger/cli-debugger.c)
file(GLOB DEBUGGER_TEST_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/debugger/test/*.c)
add_subdirectory(src/debugger)
add_subdirectory(src/feature)
set(FEATURE_SRC)
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6")
@ -823,43 +741,29 @@ if(ENABLE_SCRIPTING)
endif()
endif()
add_subdirectory(src/arm)
add_subdirectory(src/core)
add_subdirectory(src/gb)
add_subdirectory(src/gba)
add_subdirectory(src/lr35902)
add_subdirectory(src/util)
list(APPEND GUI_SRC ${EXTRA_GUI_SRC})
list(APPEND UTIL_SRC ${CMAKE_CURRENT_BINARY_DIR}/version.c)
set(TEST_SRC ${CORE_TEST_SRC})
if(M_CORE_GB)
add_definitions(-DM_CORE_GB)
list(APPEND CORE_SRC
${LR35902_SRC}
${GB_SRC}
${GB_RENDERER_SRC})
list(APPEND DEBUGGER_SRC
${CMAKE_CURRENT_SOURCE_DIR}/src/lr35902/debugger/cli-debugger.c
${CMAKE_CURRENT_SOURCE_DIR}/src/lr35902/debugger/debugger.c
${CMAKE_CURRENT_SOURCE_DIR}/src/lr35902/debugger/memory-debugger.c
${CMAKE_CURRENT_SOURCE_DIR}/src/gb/debugger/cli.c
${CMAKE_CURRENT_SOURCE_DIR}/src/gb/debugger/debugger.c
${CMAKE_CURRENT_SOURCE_DIR}/src/gb/debugger/symbols.c)
list(APPEND TEST_SRC
${LR35902_TEST_SRC}
${GB_TEST_SRC})
list(APPEND CORE_SRC ${LR35902_SRC} ${GB_SRC})
list(APPEND DEBUGGER_SRC ${LR35902_DEBUGGER_SRC} ${GB_DEBUGGER_SRC})
list(APPEND TEST_SRC ${LR35902_TEST_SRC} ${GB_TEST_SRC})
endif()
if(M_CORE_GBA)
add_definitions(-DM_CORE_GBA)
list(APPEND CORE_SRC
${ARM_SRC}
${GBA_SRC}
${GBA_CHEATS_SRC}
${GBA_RENDERER_SRC})
list(APPEND DEBUGGER_SRC
${CMAKE_CURRENT_SOURCE_DIR}/src/arm/debugger/cli-debugger.c
${CMAKE_CURRENT_SOURCE_DIR}/src/arm/debugger/debugger.c
${CMAKE_CURRENT_SOURCE_DIR}/src/arm/debugger/memory-debugger.c
${CMAKE_CURRENT_SOURCE_DIR}/src/gba/debugger/cli.c)
list(APPEND TEST_SRC
${ARM_TEST_SRC}
${GBA_TEST_SRC})
if(NOT M_CORE_GB)
list(APPEND CORE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/gb/audio.c)
endif()
list(APPEND CORE_SRC ${ARM_SRC} ${GBA_SRC})
list(APPEND DEBUGGER_SRC ${ARM_DEBUGGER_SRC} ${GBA_DEBUGGER_SRC})
list(APPEND TEST_SRC ${ARM_TEST_SRC} ${GBA_TEST_SRC})
endif()
if(USE_DEBUGGERS)
@ -909,29 +813,22 @@ set(SRC ${CORE_SRC} ${VFS_SRC})
if(NOT MINIMAL_CORE)
set(ENABLE_EXTRA ON)
if(M_CORE_GBA)
list(APPEND SRC
${GBA_SIO_SRC})
list(APPEND SRC ${GBA_SIO_SRC})
endif()
if(M_CORE_GB)
list(APPEND SRC
${GB_SIO_SRC})
list(APPEND SRC ${GB_SIO_SRC})
endif()
list(APPEND SRC
${FEATURE_SRC})
list(APPEND SRC ${FEATURE_SRC})
endif()
if(ENABLE_EXTRA)
if(M_CORE_GBA)
list(APPEND SRC
${GBA_RR_SRC}
${GBA_EXTRA_SRC})
list(APPEND SRC ${GBA_EXTRA_SRC})
endif()
if(M_CORE_GB)
list(APPEND SRC
${GB_EXTRA_SRC})
list(APPEND SRC ${GB_EXTRA_SRC})
endif()
list(APPEND SRC
${EXTRA_SRC})
list(APPEND SRC ${EXTRA_SRC})
endif()
if(NOT SKIP_LIBRARY)

20
src/arm/CMakeLists.txt Normal file
View File

@ -0,0 +1,20 @@
include(ExportDirectory)
set(SOURCE_FILES
arm.c
core.c
decoder-arm.c
decoder.c
decoder-thumb.c
isa-arm.c
isa-thumb.c)
set(DEBUGGER_FILES
debugger/cli-debugger.c
debugger/debugger.c
debugger/memory-debugger.c)
source_group("ARM core" FILES ${SOURCE_FILES})
source_group("ARM debugger" FILES ${DEBUGGER_FILES})
export_directory(ARM SOURCE_FILES)
export_directory(ARM_DEBUGGER DEBUGGER_FILES)

31
src/core/CMakeLists.txt Normal file
View File

@ -0,0 +1,31 @@
include(ExportDirectory)
set(SOURCE_FILES
bitmap-cache.c
cache-set.c
cheats.c
config.c
core.c
directories.c
input.c
interface.c
library.c
lockstep.c
log.c
map-cache.c
mem-search.c
rewind.c
scripting.c
serialize.c
sync.c
thread.c
tile-cache.c
timing.c)
set(TEST_FILES
test/core.c)
source_group("mCore" FILES ${SOURCE_FILES})
source_group("mCore tests" FILES ${TEST_FILES})
export_directory(CORE SOURCE_FILES)
export_directory(CORE_TEST TEST_FILES)

View File

@ -0,0 +1,16 @@
include(ExportDirectory)
set(SOURCE_FILES
cli-debugger.c
debugger.c
parser.c
symbols.c)
set(TEST_FILES
test/lexer.c
test/parser.c)
source_group("Debugger" FILES ${SOURCE_FILES})
source_group("Debugger tests" FILES ${TEST_FILES})
export_directory(DEBUGGER SOURCE_FILES)
export_directory(DEBUGGER_TEST TEST_FILES)

View File

@ -0,0 +1,16 @@
include(ExportDirectory)
set(SOURCE_FILES
commandline.c
thread-proxy.c
video-logger.c)
set(GUI_FILES
gui/gui-config.c
gui/gui-runner.c
gui/remap.c)
source_group("Extra features" FILES ${SOURCE_FILES})
source_group("Extra GUI source" FILES ${GUI_FILES})
export_directory(EXTRA SOURCE_FILES)
export_directory(EXTRA_GUI GUI_FILES)

45
src/gb/CMakeLists.txt Normal file
View File

@ -0,0 +1,45 @@
include(ExportDirectory)
set(SOURCE_FILES
audio.c
cheats.c
core.c
gb.c
io.c
mbc.c
memory.c
overrides.c
serialize.c
renderers/cache-set.c
renderers/software.c
sio.c
timer.c
video.c)
set(SIO_FILES
sio/lockstep.c
sio/printer.c)
set(EXTRA_FILES
extra/proxy.c)
set(DEBUGGER_FILES
debugger/cli.c
debugger/debugger.c
debugger/symbols.c)
set(TEST_FILES
test/core.c
test/mbc.c
test/memory.c
test/rtc.c)
source_group("GB board" FILES ${SOURCE_FILES})
source_group("GB extras" FILES ${EXTRA_FILES} ${SIO_FILES})
source_group("GB debugger" FILES ${DEBUGGER_FILES})
source_group("GB tests" FILES ${TEST_FILES})
export_directory(GB SOURCE_FILES)
export_directory(GB_SIO SIO_FILES)
export_directory(GB_EXTRA EXTRA_FILES)
export_directory(GB_DEBUGGER DEBUGGER_FILES)
export_directory(GB_TEST TEST_FILES)

63
src/gba/CMakeLists.txt Normal file
View File

@ -0,0 +1,63 @@
include(ExportDirectory)
set(SOURCE_FILES
../gb/audio.c
audio.c
bios.c
cheats.c
cheats/codebreaker.c
cheats/gameshark.c
cheats/parv3.c
core.c
dma.c
gba.c
hardware.c
hle-bios.c
input.c
io.c
matrix.c
memory.c
overrides.c
renderers/cache-set.c
renderers/common.c
renderers/gl.c
renderers/software-bg.c
renderers/software-mode0.c
renderers/software-obj.c
renderers/video-software.c
savedata.c
serialize.c
sharkport.c
sio.c
timer.c
vfame.c
video.c)
set(SIO_FILES
sio/joybus.c
sio/lockstep.c)
set(EXTRA_FILES
extra/audio-mixer.c
extra/battlechip.c
extra/proxy.c
rr/mgm.c
rr/rr.c
rr/vbm.c)
set(DEBUGGER_FILES
debugger/cli.c)
set(TEST_FILES
test/cheats.c
test/core.c)
source_group("GBA board" FILES ${SOURCE_FILES})
source_group("GBA extras" FILES ${EXTRA_FILES} ${SIO_FILES})
source_group("GBA debugger" FILES ${DEBUGGER_FILES})
source_group("GBA tests" FILES ${TEST_FILES})
export_directory(GBA SOURCE_FILES)
export_directory(GBA_SIO SIO_FILES)
export_directory(GBA_EXTRA EXTRA_FILES)
export_directory(GBA_DEBUGGER DEBUGGER_FILES)
export_directory(GBA_TEST TEST_FILES)

View File

@ -0,0 +1,16 @@
include(ExportDirectory)
set(SOURCE_FILES
decoder.c
isa-lr35902.c
lr35902.c)
set(DEBUGGER_FILES
debugger/cli-debugger.c
debugger/debugger.c
debugger/memory-debugger.c)
source_group("LR35902 core" FILES ${SOURCE_FILES})
source_group("ARM LR35902" FILES ${DEBUGGER_FILES})
export_directory(LR35902 SOURCE_FILES)
export_directory(LR35902_DEBUGGER DEBUGGER_FILES)

View File

@ -0,0 +1,7 @@
macro(export_directory PREFIX FILES)
set(${PREFIX}_SRC)
foreach(SRCFILE IN LISTS ${FILES})
list(APPEND ${PREFIX}_SRC "${CMAKE_CURRENT_SOURCE_DIR}/${SRCFILE}")
endforeach()
set(${PREFIX}_SRC ${${PREFIX}_SRC} PARENT_SCOPE)
endmacro()

View File

@ -0,0 +1,47 @@
include(FindPkgConfig)
function(find_feature FEATURE_NAME FEATURE_REQUIRES)
if (NOT ${FEATURE_NAME})
return()
endif()
if (DISABLE_DEPS)
set(${FEATURE_NAME} OFF PARENT_SCOPE)
return()
endif()
foreach(REQUIRE ${FEATURE_REQUIRES})
if(NOT ${REQUIRE}_FOUND)
find_package(${REQUIRE} QUIET)
if(NOT ${REQUIRE}_FOUND)
pkg_search_module(${REQUIRE} ${REQUIRE})
if (NOT ${REQUIRE}_FOUND)
message(WARNING "Requested module ${REQUIRE} missing for feature ${FEATURE_NAME}. Feature disabled.")
set(${FEATURE_NAME} OFF PARENT_SCOPE)
return()
endif()
endif()
endif()
string(TOUPPER ${REQUIRE} UREQUIRE)
set(${UREQUIRE}_CFLAGS_OTHER ${${REQUIRE}_CFLAGS_OTHER} PARENT_SCOPE)
set(${UREQUIRE}_FOUND ${${REQUIRE}_FOUND} PARENT_SCOPE)
set(${UREQUIRE}_INCLUDE_DIRS ${${REQUIRE}_INCLUDE_DIRS} PARENT_SCOPE)
set(${UREQUIRE}_VERSION_STRING ${${REQUIRE}_VERSION_STRING} PARENT_SCOPE)
if (APPLE)
set(IS_FRAMEWORK OFF)
set(LIBS)
foreach(LIB IN LISTS ${REQUIRE}_LIBRARIES)
if(LIB STREQUAL "-framework")
set(IS_FRAMEWORK ON)
elseif(IS_FRAMEWORK)
list(APPEND LIBS "-framework ${LIB}")
set(IS_FRAMEWORK OFF)
else()
list(APPEND LIBS ${LIB})
endif()
endforeach()
set(${UREQUIRE}_LIBRARIES ${LIBS} PARENT_SCOPE)
else()
set(${UREQUIRE}_LIBRARIES ${${REQUIRE}_LIBRARIES} PARENT_SCOPE)
endif()
set(${UREQUIRE}_LIBRARY_DIRS ${${REQUIRE}_LIBRARY_DIRS} PARENT_SCOPE)
set(${UREQUIRE}_LDFLAGS_OTHER ${${REQUIRE}_LDFLAGS_OTHER} PARENT_SCOPE)
endforeach()
endfunction()

38
src/util/CMakeLists.txt Normal file
View File

@ -0,0 +1,38 @@
include(ExportDirectory)
set(SOURCE_FILES
circle-buffer.c
configuration.c
crc32.c
elf-read.c
export.c
formatting.c
hash.c
patch.c
patch-fast.c
patch-ips.c
patch-ups.c
png-io.c
ring-fifo.c
string.c
table.c
text-codec.c
vfs.c)
set(GUI_FILES
gui.c
gui/file-select.c
gui/font.c
gui/font-metrics.c
gui/menu.c)
set(TEST_FILES
test/text-codec.c
test/vfs.c)
source_group("Utilities" FILES ${SOURCE_FILES})
source_group("GUI source" FILES ${GUI_FILES})
source_group("Utilities tests" FILES ${TEST_FILES})
export_directory(UTIL SOURCE_FILES)
export_directory(GUI GUI_FILES)
export_directory(UTIL_TEST TEST_FILES)