From 5d13538584af11540bb762cd3e877c014436b234 Mon Sep 17 00:00:00 2001 From: s1nka Date: Sun, 2 Apr 2017 13:33:01 +0600 Subject: add CMake build system --- .gitignore | 1 + CMakeLists.txt | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 9 +++++++++ src/version.h | 27 --------------------------- src/version.h.cmake | 27 +++++++++++++++++++++++++++ 5 files changed, 86 insertions(+), 27 deletions(-) create mode 100644 CMakeLists.txt delete mode 100644 src/version.h create mode 100644 src/version.h.cmake diff --git a/.gitignore b/.gitignore index 5053c00..4272730 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 0000000..7c5c6f2 --- /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 e528001..234b26e 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 deleted file mode 100644 index aa80b51..0000000 --- a/src/version.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - Copyright 2016-2017 StapleButter - - This file is part of melonDS. - - melonDS is free software: you can redistribute it and/or modify it under - the terms of the GNU General Public License as published by the Free - Software Foundation, either version 3 of the License, or (at your option) - any later version. - - melonDS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with melonDS. If not, see http://www.gnu.org/licenses/. -*/ - -#ifndef VERSION_H -#define VERSION_H - -#define MELONDS_VERSION "0.1" - -#define MELONDS_URL "http://melonds.kuribo64.net/" - -#endif // VERSION_H - diff --git a/src/version.h.cmake b/src/version.h.cmake new file mode 100644 index 0000000..50656e4 --- /dev/null +++ b/src/version.h.cmake @@ -0,0 +1,27 @@ +/* + Copyright 2016-2017 StapleButter + + This file is part of melonDS. + + melonDS is free software: you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free + Software Foundation, either version 3 of the License, or (at your option) + any later version. + + melonDS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with melonDS. If not, see http://www.gnu.org/licenses/. +*/ + +#ifndef VERSION_H +#define VERSION_H + +#define MELONDS_VERSION "@VERSION@" + +#define MELONDS_URL "http://melonds.kuribo64.net/" + +#endif // VERSION_H + -- cgit v1.2.3