mirror of
https://github.com/danule222/xrbDS.git
synced 2025-06-18 14:25:33 -04:00
Create CMake solution
Some basic folder structure
This commit is contained in:
parent
f5b98df197
commit
b9ee14cc40
13
CMakeLists.txt
Normal file
13
CMakeLists.txt
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.15)
|
||||||
|
|
||||||
|
project(xrbDS)
|
||||||
|
|
||||||
|
include_directories(
|
||||||
|
include/xrbds
|
||||||
|
)
|
||||||
|
|
||||||
|
add_library(xrbds
|
||||||
|
engine/core/engine.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
add_subdirectory(samples/hello_world)
|
123
Makefile
123
Makefile
@ -1,123 +0,0 @@
|
|||||||
#---------------------------------------------------------------------------------
|
|
||||||
.SUFFIXES:
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
ifeq ($(strip $(DEVKITARM)),)
|
|
||||||
$(error "Please set DEVKITARM in your environment. export DEVKITARM=<path to>devkitARM")
|
|
||||||
endif
|
|
||||||
|
|
||||||
include $(DEVKITARM)/ds_rules
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
# TARGET is the name of the output
|
|
||||||
# BUILD is the directory where object files & intermediate files will be placed
|
|
||||||
# SOURCES is a list of directories containing source code
|
|
||||||
# INCLUDES is a list of directories containing extra header files
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
TARGET := $(shell basename $(CURDIR))
|
|
||||||
BUILD := build
|
|
||||||
SOURCES := gfx source data
|
|
||||||
INCLUDES := include build
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
# options for code generation
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
ARCH := -march=armv5te -mtune=arm946e-s -mthumb
|
|
||||||
|
|
||||||
CFLAGS := -g -Wall -O2 -ffunction-sections -fdata-sections\
|
|
||||||
$(ARCH)
|
|
||||||
|
|
||||||
CFLAGS += $(INCLUDE) -DARM9
|
|
||||||
CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions
|
|
||||||
|
|
||||||
ASFLAGS := -g $(ARCH)
|
|
||||||
LDFLAGS = -specs=ds_arm9.specs -g $(ARCH) -Wl,-Map,$(notdir $*.map)
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
# any extra libraries we wish to link with the project
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
LIBS := -lnds9
|
|
||||||
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
# list of directories containing libraries, this must be the top level containing
|
|
||||||
# include and lib
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
LIBDIRS := $(LIBNDS)
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
# no real need to edit anything past this point unless you need to add additional
|
|
||||||
# rules for different file extensions
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
ifneq ($(BUILD),$(notdir $(CURDIR)))
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
export OUTPUT := $(CURDIR)/$(TARGET)
|
|
||||||
|
|
||||||
export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir))
|
|
||||||
export DEPSDIR := $(CURDIR)/$(BUILD)
|
|
||||||
|
|
||||||
CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c)))
|
|
||||||
CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp)))
|
|
||||||
SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s)))
|
|
||||||
BINFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.bin)))
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
# use CXX for linking C++ projects, CC for standard C
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
ifeq ($(strip $(CPPFILES)),)
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
export LD := $(CC)
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
else
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
export LD := $(CXX)
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
endif
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
export OFILES := $(BINFILES:.bin=.o) \
|
|
||||||
$(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o)
|
|
||||||
|
|
||||||
export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \
|
|
||||||
$(foreach dir,$(LIBDIRS),-I$(dir)/include) \
|
|
||||||
-I$(CURDIR)/$(BUILD)
|
|
||||||
|
|
||||||
export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib)
|
|
||||||
|
|
||||||
.PHONY: $(BUILD) clean
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
$(BUILD):
|
|
||||||
@[ -d $@ ] || mkdir -p $@
|
|
||||||
@$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
clean:
|
|
||||||
@echo clean ...
|
|
||||||
@rm -fr $(BUILD) $(TARGET).elf $(TARGET).nds $(TARGET).ds.gba
|
|
||||||
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
else
|
|
||||||
|
|
||||||
DEPENDS := $(OFILES:.o=.d)
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
# main targets
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
$(OUTPUT).nds : $(OUTPUT).elf
|
|
||||||
$(OUTPUT).elf : $(OFILES)
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
%.o : %.bin
|
|
||||||
#---------------------------------------------------------------------------------
|
|
||||||
@echo $(notdir $<)
|
|
||||||
$(bin2o)
|
|
||||||
|
|
||||||
|
|
||||||
-include $(DEPENDS)
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------------
|
|
||||||
endif
|
|
||||||
#---------------------------------------------------------------------------------------
|
|
238
clang-format
Normal file
238
clang-format
Normal file
@ -0,0 +1,238 @@
|
|||||||
|
# Commented out parameters are those with the same value as base LLVM style.
|
||||||
|
# We can uncomment them if we want to change their value, or enforce the
|
||||||
|
# chosen value in case the base style changes (last sync: Clang 17.0.6).
|
||||||
|
BasedOnStyle: LLVM
|
||||||
|
AccessModifierOffset: -4
|
||||||
|
AlignAfterOpenBracket: DontAlign
|
||||||
|
# AlignArrayOfStructures: None
|
||||||
|
# AlignConsecutiveAssignments:
|
||||||
|
# Enabled: false
|
||||||
|
# AcrossEmptyLines: false
|
||||||
|
# AcrossComments: false
|
||||||
|
# AlignCompound: false
|
||||||
|
# PadOperators: true
|
||||||
|
# AlignConsecutiveBitFields:
|
||||||
|
# Enabled: false
|
||||||
|
# AcrossEmptyLines: false
|
||||||
|
# AcrossComments: false
|
||||||
|
# AlignCompound: false
|
||||||
|
# PadOperators: false
|
||||||
|
# AlignConsecutiveDeclarations:
|
||||||
|
# Enabled: false
|
||||||
|
# AcrossEmptyLines: false
|
||||||
|
# AcrossComments: false
|
||||||
|
# AlignCompound: false
|
||||||
|
# PadOperators: false
|
||||||
|
# AlignConsecutiveMacros:
|
||||||
|
# Enabled: false
|
||||||
|
# AcrossEmptyLines: false
|
||||||
|
# AcrossComments: false
|
||||||
|
# AlignCompound: false
|
||||||
|
# PadOperators: false
|
||||||
|
# AlignConsecutiveShortCaseStatements:
|
||||||
|
# Enabled: false
|
||||||
|
# AcrossEmptyLines: false
|
||||||
|
# AcrossComments: false
|
||||||
|
# AlignCaseColons: false
|
||||||
|
# AlignEscapedNewlines: Right
|
||||||
|
AlignOperands: DontAlign
|
||||||
|
AlignTrailingComments:
|
||||||
|
Kind: Never
|
||||||
|
OverEmptyLines: 0
|
||||||
|
# AllowAllArgumentsOnNextLine: true
|
||||||
|
AllowAllParametersOfDeclarationOnNextLine: false
|
||||||
|
# AllowShortBlocksOnASingleLine: Never
|
||||||
|
# AllowShortCaseLabelsOnASingleLine: false
|
||||||
|
# AllowShortEnumsOnASingleLine: true
|
||||||
|
AllowShortFunctionsOnASingleLine: Inline
|
||||||
|
# AllowShortIfStatementsOnASingleLine: Never
|
||||||
|
# AllowShortLambdasOnASingleLine: All
|
||||||
|
# AllowShortLoopsOnASingleLine: false
|
||||||
|
# AlwaysBreakAfterDefinitionReturnType: None
|
||||||
|
# AlwaysBreakAfterReturnType: None
|
||||||
|
# AlwaysBreakBeforeMultilineStrings: false
|
||||||
|
# AlwaysBreakTemplateDeclarations: MultiLine
|
||||||
|
# AttributeMacros:
|
||||||
|
# - __capability
|
||||||
|
# BinPackArguments: true
|
||||||
|
# BinPackParameters: true
|
||||||
|
# BitFieldColonSpacing: Both
|
||||||
|
# BraceWrapping:
|
||||||
|
# AfterCaseLabel: false
|
||||||
|
# AfterClass: false
|
||||||
|
# AfterControlStatement: Never
|
||||||
|
# AfterEnum: false
|
||||||
|
# AfterFunction: false
|
||||||
|
# AfterNamespace: false
|
||||||
|
# AfterObjCDeclaration: false
|
||||||
|
# AfterStruct: false
|
||||||
|
# AfterUnion: false
|
||||||
|
# AfterExternBlock: false
|
||||||
|
# BeforeCatch: false
|
||||||
|
# BeforeElse: false
|
||||||
|
# BeforeLambdaBody: false
|
||||||
|
# BeforeWhile: false
|
||||||
|
# IndentBraces: false
|
||||||
|
# SplitEmptyFunction: true
|
||||||
|
# SplitEmptyRecord: true
|
||||||
|
# SplitEmptyNamespace: true
|
||||||
|
# BreakAfterAttributes: Never
|
||||||
|
# BreakAfterJavaFieldAnnotations: false
|
||||||
|
# BreakArrays: true
|
||||||
|
# BreakBeforeBinaryOperators: None
|
||||||
|
# BreakBeforeBraces: Attach
|
||||||
|
# BreakBeforeConceptDeclarations: Always
|
||||||
|
# BreakBeforeInlineASMColon: OnlyMultiline
|
||||||
|
# BreakBeforeTernaryOperators: true
|
||||||
|
BreakConstructorInitializers: AfterColon
|
||||||
|
# BreakInheritanceList: BeforeColon
|
||||||
|
# BreakStringLiterals: true
|
||||||
|
ColumnLimit: 0
|
||||||
|
# CommentPragmas: "^ IWYU pragma:"
|
||||||
|
# CompactNamespaces: false
|
||||||
|
ConstructorInitializerIndentWidth: 8
|
||||||
|
ContinuationIndentWidth: 8
|
||||||
|
Cpp11BracedListStyle: false
|
||||||
|
# DerivePointerAlignment: false
|
||||||
|
# DisableFormat: false
|
||||||
|
# EmptyLineAfterAccessModifier: Never
|
||||||
|
# EmptyLineBeforeAccessModifier: LogicalBlock
|
||||||
|
# ExperimentalAutoDetectBinPacking: false
|
||||||
|
# FixNamespaceComments: true
|
||||||
|
# ForEachMacros:
|
||||||
|
# - foreach
|
||||||
|
# - Q_FOREACH
|
||||||
|
# - BOOST_FOREACH
|
||||||
|
# IfMacros:
|
||||||
|
# - KJ_IF_MAYBE
|
||||||
|
# IncludeBlocks: Preserve
|
||||||
|
IncludeCategories:
|
||||||
|
- Regex: ^".*"$
|
||||||
|
Priority: 1
|
||||||
|
- Regex: ^<.*\.h>$
|
||||||
|
Priority: 2
|
||||||
|
- Regex: ^<.*>$
|
||||||
|
Priority: 3
|
||||||
|
# IncludeIsMainRegex: (Test)?$
|
||||||
|
# IncludeIsMainSourceRegex: ""
|
||||||
|
# IndentAccessModifiers: false
|
||||||
|
# IndentCaseBlocks: false
|
||||||
|
IndentCaseLabels: true
|
||||||
|
# IndentExternBlock: AfterExternBlock
|
||||||
|
# IndentGotoLabels: true
|
||||||
|
# IndentPPDirectives: None
|
||||||
|
# IndentRequiresClause: true
|
||||||
|
IndentWidth: 4
|
||||||
|
# IndentWrappedFunctionNames: false
|
||||||
|
InsertBraces: true
|
||||||
|
# InsertNewlineAtEOF: false
|
||||||
|
# InsertTrailingCommas: None
|
||||||
|
# IntegerLiteralSeparator:
|
||||||
|
# Binary: 0
|
||||||
|
# BinaryMinDigits: 0
|
||||||
|
# Decimal: 0
|
||||||
|
# DecimalMinDigits: 0
|
||||||
|
# Hex: 0
|
||||||
|
# HexMinDigits: 0
|
||||||
|
JavaImportGroups:
|
||||||
|
- org.godotengine
|
||||||
|
- android
|
||||||
|
- androidx
|
||||||
|
- com.android
|
||||||
|
- com.google
|
||||||
|
- java
|
||||||
|
- javax
|
||||||
|
# JavaScriptQuotes: Leave
|
||||||
|
# JavaScriptWrapImports: true
|
||||||
|
# KeepEmptyLinesAtEOF: false
|
||||||
|
KeepEmptyLinesAtTheStartOfBlocks: false
|
||||||
|
# LambdaBodyIndentation: Signature
|
||||||
|
# Language: Cpp
|
||||||
|
# LineEnding: DeriveLF
|
||||||
|
# MacroBlockBegin: ""
|
||||||
|
# MacroBlockEnd: ""
|
||||||
|
# MaxEmptyLinesToKeep: 1
|
||||||
|
# NamespaceIndentation: None
|
||||||
|
# ObjCBinPackProtocolList: Auto
|
||||||
|
ObjCBlockIndentWidth: 4
|
||||||
|
# ObjCBreakBeforeNestedBlockParam: true
|
||||||
|
# ObjCSpaceAfterProperty: false
|
||||||
|
# ObjCSpaceBeforeProtocolList: true
|
||||||
|
# PPIndentWidth: -1
|
||||||
|
PackConstructorInitializers: NextLine
|
||||||
|
# PenaltyBreakAssignment: 2
|
||||||
|
# PenaltyBreakBeforeFirstCallParameter: 19
|
||||||
|
# PenaltyBreakComment: 300
|
||||||
|
# PenaltyBreakFirstLessLess: 120
|
||||||
|
# PenaltyBreakOpenParenthesis: 0
|
||||||
|
# PenaltyBreakString: 1000
|
||||||
|
# PenaltyBreakTemplateDeclaration: 10
|
||||||
|
# PenaltyExcessCharacter: 1000000
|
||||||
|
# PenaltyIndentedWhitespace: 0
|
||||||
|
# PenaltyReturnTypeOnItsOwnLine: 60
|
||||||
|
# PointerAlignment: Right
|
||||||
|
# QualifierAlignment: Leave
|
||||||
|
# ReferenceAlignment: Pointer
|
||||||
|
# ReflowComments: true
|
||||||
|
# RemoveBracesLLVM: false
|
||||||
|
# RemoveParentheses: Leave
|
||||||
|
RemoveSemicolon: true
|
||||||
|
# RequiresClausePosition: OwnLine
|
||||||
|
# RequiresExpressionIndentation: OuterScope
|
||||||
|
# SeparateDefinitionBlocks: Leave
|
||||||
|
# ShortNamespaceLines: 1
|
||||||
|
# SortIncludes: CaseSensitive
|
||||||
|
# SortJavaStaticImport: Before
|
||||||
|
# SortUsingDeclarations: LexicographicNumeric
|
||||||
|
# SpaceAfterCStyleCast: false
|
||||||
|
# SpaceAfterLogicalNot: false
|
||||||
|
# SpaceAfterTemplateKeyword: true
|
||||||
|
# SpaceAroundPointerQualifiers: Default
|
||||||
|
# SpaceBeforeAssignmentOperators: true
|
||||||
|
# SpaceBeforeCaseColon: false
|
||||||
|
# SpaceBeforeCpp11BracedList: false
|
||||||
|
# SpaceBeforeCtorInitializerColon: true
|
||||||
|
# SpaceBeforeInheritanceColon: true
|
||||||
|
# SpaceBeforeJsonColon: false
|
||||||
|
# SpaceBeforeParens: ControlStatements
|
||||||
|
# SpaceBeforeParensOptions:
|
||||||
|
# AfterControlStatements: true
|
||||||
|
# AfterForeachMacros: true
|
||||||
|
# AfterFunctionDeclarationName: false
|
||||||
|
# AfterFunctionDefinitionName: false
|
||||||
|
# AfterIfMacros: true
|
||||||
|
# AfterOverloadedOperator: false
|
||||||
|
# AfterRequiresInClause: false
|
||||||
|
# AfterRequiresInExpression: false
|
||||||
|
# BeforeNonEmptyParentheses: false
|
||||||
|
# SpaceBeforeRangeBasedForLoopColon: true
|
||||||
|
# SpaceBeforeSquareBrackets: false
|
||||||
|
# SpaceInEmptyBlock: false
|
||||||
|
# SpacesBeforeTrailingComments: 1
|
||||||
|
# SpacesInAngles: Never
|
||||||
|
# SpacesInContainerLiterals: true
|
||||||
|
SpacesInLineCommentPrefix:
|
||||||
|
Minimum: 0 # We want a minimum of 1 for comments, but allow 0 for disabled code.
|
||||||
|
Maximum: -1
|
||||||
|
# SpacesInParens: Never
|
||||||
|
# SpacesInParensOptions:
|
||||||
|
# InConditionalStatements: false
|
||||||
|
# InCStyleCasts: false
|
||||||
|
# InEmptyParentheses: false
|
||||||
|
# Other: false
|
||||||
|
# SpacesInSquareBrackets: false
|
||||||
|
Standard: c++20
|
||||||
|
# StatementAttributeLikeMacros:
|
||||||
|
# - Q_EMIT
|
||||||
|
# StatementMacros:
|
||||||
|
# - Q_UNUSED
|
||||||
|
# - QT_REQUIRE_VERSION
|
||||||
|
TabWidth: 4
|
||||||
|
UseTab: Always
|
||||||
|
# VerilogBreakBetweenInstancePorts: true
|
||||||
|
# WhitespaceSensitiveMacros:
|
||||||
|
# - BOOST_PP_STRINGIZE
|
||||||
|
# - CF_SWIFT_NAME
|
||||||
|
# - NS_SWIFT_NAME
|
||||||
|
# - PP_STRINGIZE
|
||||||
|
# - STRINGIZE
|
3
engine/core/engine.cpp
Normal file
3
engine/core/engine.cpp
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
#include "core/engine.h"
|
||||||
|
|
||||||
|
Engine::Engine() {}
|
0
engine/core/main_loop.cpp
Normal file
0
engine/core/main_loop.cpp
Normal file
20
engine/core/main_loop.h
Normal file
20
engine/core/main_loop.h
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
#ifndef MAIN_LOOP_H
|
||||||
|
#define MAIN_LOOP_H
|
||||||
|
|
||||||
|
class MainLoop {
|
||||||
|
public:
|
||||||
|
MainLoop();
|
||||||
|
~MainLoop();
|
||||||
|
|
||||||
|
virtual void initialize();
|
||||||
|
virtual void iterationPrepare() {}
|
||||||
|
virtual bool physicsProcess(double p_time);
|
||||||
|
virtual void iterationEnd() {}
|
||||||
|
virtual bool process(double p_time);
|
||||||
|
virtual void finalize();
|
||||||
|
|
||||||
|
private:
|
||||||
|
void processFrame();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // MAIN_LOOP_H
|
0
engine/core/object.cpp
Normal file
0
engine/core/object.cpp
Normal file
0
engine/core/object.h
Normal file
0
engine/core/object.h
Normal file
29
include/xrbds/core/engine.h
Normal file
29
include/xrbds/core/engine.h
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
#ifndef XRBDS_CORE_ENGINE_H
|
||||||
|
#define XRBDS_CORE_ENGINE_H
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
class Engine {
|
||||||
|
public:
|
||||||
|
Engine();
|
||||||
|
~Engine();
|
||||||
|
|
||||||
|
// Initialize the engine
|
||||||
|
bool initialize(const std::string &title, int width, int height);
|
||||||
|
|
||||||
|
// Run the main game loop
|
||||||
|
void run();
|
||||||
|
|
||||||
|
// Shutdown the engine
|
||||||
|
void shutdown();
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool isRunning;
|
||||||
|
|
||||||
|
// Internal methods for the game loop
|
||||||
|
void processInput();
|
||||||
|
void update();
|
||||||
|
void render();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // XRBDS_CORE_ENGINE_H
|
19
samples/hello_world/CMakeLists.txt
Normal file
19
samples/hello_world/CMakeLists.txt
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
add_executable(hello_world
|
||||||
|
main.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
target_link_libraries(hello_world
|
||||||
|
xrbds
|
||||||
|
)
|
||||||
|
|
||||||
|
# Project specific settings
|
||||||
|
set(TITLE "Hello World")
|
||||||
|
set(PUBLISHER "Built with xrbDS")
|
||||||
|
set(DEVELOPER "Xarblanca")
|
||||||
|
|
||||||
|
nds_create_rom(
|
||||||
|
hello_world
|
||||||
|
NAME ${TITLE}
|
||||||
|
SUBTITLE1 ${PUBLISHER}
|
||||||
|
SUBTITLE2 ${DEVELOPER}
|
||||||
|
)
|
@ -1,6 +1,8 @@
|
|||||||
#include <nds.h>
|
#include <nds.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include "core/engine.h"
|
||||||
|
|
||||||
static volatile int frame = 0;
|
static volatile int frame = 0;
|
||||||
|
|
||||||
static void Vblank() { frame++; }
|
static void Vblank() { frame++; }
|
||||||
@ -12,15 +14,14 @@ int main(void) {
|
|||||||
|
|
||||||
consoleDemoInit();
|
consoleDemoInit();
|
||||||
|
|
||||||
iprintf(" Hello DS dev'rs\n");
|
iprintf("\x1b[4;7HxrbDS Hello World\n");
|
||||||
iprintf(" \x1b[32mwww.devkitpro.org\n");
|
|
||||||
iprintf(" \x1b[32;1mwww.drunkencoders.com\x1b[39m");
|
|
||||||
|
|
||||||
while (pmMainLoop()) {
|
while (pmMainLoop()) {
|
||||||
swiWaitForVBlank();
|
swiWaitForVBlank();
|
||||||
scanKeys();
|
scanKeys();
|
||||||
int keys = keysDown();
|
int keys = keysDown();
|
||||||
if (keys & KEY_START) break;
|
if (keys & KEY_START)
|
||||||
|
break;
|
||||||
|
|
||||||
touchRead(&touchXY);
|
touchRead(&touchXY);
|
||||||
|
|
28
tools/create_solution.sh
Normal file
28
tools/create_solution.sh
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
DIR="../build"
|
||||||
|
|
||||||
|
if [ ! -d $DIR ]; then
|
||||||
|
mkdir $DIR
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d $DIR ]; then
|
||||||
|
echo "Failed to create build directory"
|
||||||
|
exit 3
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d $DEVKITPRO ]; then
|
||||||
|
echo "Please set DEVKITPRO environment variable"
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
working_dir_name="$(basename "$PWD")"
|
||||||
|
|
||||||
|
if [ "$working_dir_name" = "tools" ]; then
|
||||||
|
echo "Creating solution..."
|
||||||
|
else
|
||||||
|
echo "Please run this script from the tools directory"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
$DEVKITPRO/portlibs/nds/bin/arm-none-eabi-cmake -S .. -B $DIR
|
Loading…
Reference in New Issue
Block a user