From 5d13538584af11540bb762cd3e877c014436b234 Mon Sep 17 00:00:00 2001 From: s1nka Date: Sun, 2 Apr 2017 13:33:01 +0600 Subject: [PATCH] add CMake build system --- .gitignore | 1 + CMakeLists.txt | 49 ++++++++++++++++++++++++++++++ README.md | 9 ++++++ src/{version.h => version.h.cmake} | 2 +- 4 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 CMakeLists.txt rename src/{version.h => version.h.cmake} (95%) diff --git a/.gitignore b/.gitignore index 5053c004..4272730e 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ bin obj *.depend *.layout +src/version.h \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 00000000..7c5c6f23 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,49 @@ +cmake_minimum_required(VERSION 2.8.11) + +SET(PROJECT_WX melonDS) +PROJECT(${PROJECT_WX}) +SET(APP_VERSION 0.1) +SET(INSTALL_PATH /usr/local/bin/) + +SET(VERSION ${APP_VERSION}) + +CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/src/version.h.cmake + ${CMAKE_CURRENT_SOURCE_DIR}/src/version.h) + +SET(SOURCES + src/wx/main.cpp + src/wx/EmuConfig.cpp + src/wx/InputConfig.cpp + src/ARM.cpp + src/ARMInterpreter.cpp + src/ARMInterpreter_ALU.cpp + src/ARMInterpreter_Branch.cpp + src/ARMInterpreter_LoadStore.cpp + src/Config.cpp + src/CP15.cpp + src/DMA.cpp + src/GPU.cpp + src/GPU2D.cpp + src/GPU3D.cpp + src/GPU3D_Soft.cpp + src/NDS.cpp + src/NDSCart.cpp + src/RTC.cpp + src/SPI.cpp + src/Wifi.cpp) + +find_package(GTK2 2.0 REQUIRED) +include_directories(${GTK2_INCLUDE_DIRS}) + +find_package(wxWidgets REQUIRED) +include(${wxWidgets_USE_FILE}) +link_libraries(${wxWidgets_LIBRARIES}) + +find_package(SDL2 REQUIRED) +include_directories(${SDL2_INCLUDE_DIR}) +link_libraries(${SDL2_LIBRARIES}) + +add_executable(${PROJECT_WX} ${SOURCES}) +target_link_libraries(${PROJECT_WX}) + +install(TARGETS ${PROJECT_WX} DESTINATION ${INSTALL_PATH}) \ No newline at end of file diff --git a/README.md b/README.md index e528001a..234b26e6 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,16 @@ Note: the DS-mode firmware in the 3DS isn't bootable, it only contains the bare As for the rest, the interface should be pretty straightforward. If you have a question, don't hesitate to ask, though! +How to build: +Linux: + * mkdir -p build + * cd build + * cmake .. + * make + +Windows: + * use CodeBlocks TODO LIST diff --git a/src/version.h b/src/version.h.cmake similarity index 95% rename from src/version.h rename to src/version.h.cmake index aa80b51d..50656e4f 100644 --- a/src/version.h +++ b/src/version.h.cmake @@ -19,7 +19,7 @@ #ifndef VERSION_H #define VERSION_H -#define MELONDS_VERSION "0.1" +#define MELONDS_VERSION "@VERSION@" #define MELONDS_URL "http://melonds.kuribo64.net/"