8 Commits

Author SHA1 Message Date
gary 170d6e35a6 [ox] Add dist to gitignore
Build / build (push) Successful in 21s
2026-05-06 02:02:20 -05:00
gary 83fd814d6e [ox] Bump required CMake version 2026-05-06 02:01:56 -05:00
gary 85f17c4188 [ox] Fix install
Build / build (push) Successful in 21s
2026-05-06 01:35:53 -05:00
gary 5645e706ad [ox/std] Add missing include
Build / build (push) Failing after 21s
2026-05-06 01:33:17 -05:00
gary d4807cd2a0 [ox] Move each library's include to its own include dir
Build / build (push) Failing after 21s
2026-05-06 01:06:34 -05:00
gary bd792a0d25 [ox] Move header files to include directory 2026-05-06 00:30:29 -05:00
gary 69957bd7b2 Remove no longer used files
Build / build (push) Successful in 20s
2026-05-05 23:19:51 -05:00
gary 1d6cce38fa Make CMake include buildcore CMake files
Build / build (push) Successful in 20s
2026-05-05 23:06:02 -05:00
201 changed files with 337 additions and 529 deletions
-12
View File
@@ -1,12 +0,0 @@
{
"log_functions": [
{
"function": "ox::trace::gdblogger::captureLogFunc",
"ignore_frames": 3,
"file_var": "file",
"line_var": "line",
"channel_var": "ch",
"msg_var": "msg"
}
]
}
+1
View File
@@ -3,6 +3,7 @@ build/gba
build/*-asan
build/*-debug
build/*-release
dist
.current_build
tags
compile_commands.json
-11
View File
@@ -1,11 +0,0 @@
language: cpp
sudo: false
dist: trusty
compiler:
- clang
- gcc
addons:
apt:
packages:
- cmake
script: ./scripts/cibuild
+3 -3
View File
@@ -1,10 +1,10 @@
cmake_minimum_required(VERSION 3.19)
cmake_minimum_required(VERSION 3.25)
set(CMAKE_POLICY_DEFAULT_CMP0110 NEW) # requires CMake 3.19
project(Ox CXX)
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)
include(address_sanitizer)
include(deps/buildcore/base.cmake)
if(NOT DEFINED OX_RUN_TESTS)
set(OX_RUN_TESTS ON)
-24
View File
@@ -1,24 +0,0 @@
set(CMAKE_SYSTEM_NAME "Generic")
set(DEVKITARM $ENV{DEVKITARM})
if(NOT DEVKITARM)
message(FATAL_ERROR "DEVKITARM environment variable not set")
endif()
set(CMAKE_C_COMPILER ${DEVKITARM}/bin/arm-none-eabi-gcc)
set(CMAKE_CXX_COMPILER ${DEVKITARM}/bin/arm-none-eabi-g++)
set(CMAKE_FIND_ROOT_PATH ${DEVKITARM})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_LIBRARY_PREFIXES lib)
set(CMAKE_FIND_LIBRARY_SUFFIXES .a)
set(LINKER_FLAGS "-specs=gba.specs")
add_definitions (
-DARM7
)
include(FindPackageHandleStandardArgs)
-18
View File
@@ -1,18 +0,0 @@
set(CMAKE_SYSTEM_NAME Windows)
set(TOOLCHAIN_PREFIX x86_64-w64-mingw32)
# cross compilers to use for C and C++
set(CMAKE_C_COMPILER /usr/bin/${TOOLCHAIN_PREFIX}-gcc)
set(CMAKE_CXX_COMPILER /usr/bin/${TOOLCHAIN_PREFIX}-g++)
set(CMAKE_RC_COMPILER /usr/bin/${TOOLCHAIN_PREFIX}-windres)
# target environment on the build host system
# set 1st to dir with the cross compiler's C/C++ headers/libs
set(CMAKE_FIND_ROOT_PATH /usr/${TOOLCHAIN_PREFIX})
# modify default behavior of FIND_XXX() commands to
# search for headers/libs in the target environment and
# search for programs in the build host environment
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
-52
View File
@@ -1,52 +0,0 @@
# This file belongs Nick Overdijk, and is from https://github.com/NickNick/wubwubcmake
# The MIT License (MIT)
#
# Copyright (c) 2013 Nick Overdijk
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of
# this software and associated documentation files (the "Software"), to deal in
# the Software without restriction, including without limitation the rights to
# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
# the Software, and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.option(USE_ASAN "Enable Address Sanitizer, if your compiler supports it" ON)
option(USE_ASAN "Enable Address Sanitizer, if your compiler supports it" OFF)
if(USE_ASAN)
include(CheckCXXSourceCompiles)
# If the compiler understands -fsanitize=address, add it to the flags (gcc since 4.8 & clang since version 3.2)
set(CMAKE_REQUIRED_FLAGS_BAK "${CMAKE_REQUIRED_FLAGS}")
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -fsanitize=address")
CHECK_CXX_SOURCE_COMPILES("int main() { return 0; }" FLAG_FSANA_SUPPORTED)
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS_BAK}")
if(FLAG_FSANA_SUPPORTED)
set(asan_flag "-fsanitize=address")
else(FLAG_FSANA_SUPPORTED)
# Alternatively, try if it understands -faddress-sanitizer (clang until version 3.2)
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -faddress-sanitizer")
CHECK_CXX_SOURCE_COMPILES("int main() { return 0; }" FLAG_FASAN_SUPPORTED)
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS_BAK}")
if(FLAG_FASAN_SUPPORTED)
set(asan_flag "-faddress-sanitizer")
endif(FLAG_FASAN_SUPPORTED)
endif(FLAG_FSANA_SUPPORTED)
if(FLAG_FSANA_SUPPORTED OR FLAG_FASAN_SUPPORTED)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${asan_flag}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${asan_flag}")
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${asan_flag}")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${asan_flag}")
endif()
endif(USE_ASAN)
-8
View File
@@ -1,8 +0,0 @@
#! /usr/bin/env bash
set -e
make -j release
make -j debug
make -j
make -j test
-8
View File
@@ -1,8 +0,0 @@
#! /usr/bin/env bash
set -e
for f in $(find $1 -maxdepth 1 -mindepth 1 -type d)
do
cmake --build "$f" --target $2 --
done
-34
View File
@@ -1,34 +0,0 @@
#! /usr/bin/env bash
set -e
project=$(pwd)/
TARGET=$1
BUILD_TYPE=$2
if [[ $TARGET == windows ]]; then
toolchain="-DCMAKE_TOOLCHAIN_FILE=cmake/modules/Mingw.cmake"
elif [[ $TARGET == gba ]]; then
toolchain="-DCMAKE_TOOLCHAIN_FILE=cmake/modules/GBA.cmake -DOX_USE_STDLIB=OFF -DCMAKE_INSTALL_PREFIX=$DEVKITARM"
fi
if [[ $BUILD_TYPE == asan ]]; then
buildTypeArgs="-DUSE_ASAN=ON -DCMAKE_BUILD_TYPE=Debug"
buildDir="build/${TARGET}-asan"
elif [[ $BUILD_TYPE == debug ]]; then
buildTypeArgs="-DCMAKE_BUILD_TYPE=Debug"
buildDir="build/${TARGET}-debug"
else
buildTypeArgs="-DCMAKE_BUILD_TYPE=Release"
buildDir="build/${TARGET}-release"
fi
mkdir -p $buildDir
pushd $buildDir
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
-GNinja \
$buildTypeArgs \
$toolchain \
$project
popd
+27 -1
View File
@@ -1 +1,27 @@
add_subdirectory(ox)
if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
set(OX_OS_WINDOWS TRUE)
endif()
if(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
set(OX_OS_FREEBSD TRUE)
else()
set(OX_OS_FREEBSD FALSE)
endif()
if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
set(OX_OS_LINUX TRUE)
else()
set(OX_OS_LINUX FALSE)
endif()
if(OX_USE_STDLIB)
add_subdirectory(oc)
endif()
add_subdirectory(clargs)
add_subdirectory(claw)
add_subdirectory(event)
add_subdirectory(fs)
add_subdirectory(logconn)
add_subdirectory(mc)
add_subdirectory(model)
add_subdirectory(preloader)
add_subdirectory(std)
@@ -7,7 +7,7 @@ endif()
add_library(
OxClArgs
clargs.cpp
src/clargs.cpp
)
set_property(
@@ -27,11 +27,16 @@ target_link_libraries(
OxStd
)
target_include_directories(
OxClArgs PUBLIC
include
)
install(
FILES
clargs.hpp
DIRECTORY
include/ox
DESTINATION
include/ox/clargs
include
)
install(
@@ -7,7 +7,7 @@
*/
#include <ox/std/string.hpp>
#include "clargs.hpp"
#include <ox/clargs/clargs.hpp>
namespace ox {
@@ -1,8 +1,8 @@
add_library(
OxClaw
read.cpp
write.cpp
src/read.cpp
src/write.cpp
)
if(NOT MSVC)
@@ -27,9 +27,22 @@ target_link_libraries(
# )
#endif()
install(TARGETS OxClaw
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
target_include_directories(
OxClaw PUBLIC
include
)
install(
DIRECTORY
include/ox
DESTINATION
include
)
install(
TARGETS OxClaw
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
if(OX_RUN_TESTS)
@@ -8,7 +8,7 @@
#include <ox/std/buffer.hpp>
#include "read.hpp"
#include <ox/claw/read.hpp>
namespace ox {
@@ -6,7 +6,7 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
#include "write.hpp"
#include <ox/claw/write.hpp>
namespace ox::detail {
+51
View File
@@ -0,0 +1,51 @@
add_library(
OxEvent
src/signal.cpp
)
if(NOT MSVC)
target_compile_options(OxEvent PRIVATE -Wsign-conversion)
target_compile_options(OxEvent PRIVATE -Wconversion)
endif()
if(NOT OX_BARE_METAL)
set_property(
TARGET
OxEvent
PROPERTY
POSITION_INDEPENDENT_CODE ON
)
endif()
target_compile_definitions(
OxEvent PUBLIC
$<$<BOOL:${OX_USE_STDLIB}>:OX_USE_STDLIB>
$<$<BOOL:${OX_NODEBUG}>:OX_NODEBUG>
)
target_link_libraries(
OxEvent PUBLIC
OxStd
)
target_include_directories(
OxEvent PUBLIC
include
)
install(
DIRECTORY
include/ox
DESTINATION
include
)
install(
TARGETS OxEvent
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
if(OX_RUN_TESTS)
add_subdirectory(test)
endif()
@@ -6,7 +6,7 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
#include "signal.hpp"
#include <ox/event/signal.hpp>
namespace ox {
@@ -5,14 +5,12 @@ endif()
add_library(
OxFS
ptrarith/nodebuffer.hpp
ptrarith/ptr.hpp
filestore/filestoretemplate.cpp
filesystem/filelocation.cpp
filesystem/pathiterator.cpp
filesystem/directory.cpp
filesystem/filesystem.cpp
filesystem/passthroughfs.cpp
src/filestore/filestoretemplate.cpp
src/filesystem/filelocation.cpp
src/filesystem/pathiterator.cpp
src/filesystem/directory.cpp
src/filesystem/filesystem.cpp
src/filesystem/passthroughfs.cpp
)
if(NOT MSVC)
@@ -33,10 +31,22 @@ target_link_libraries(
OxMetalClaw
)
target_include_directories(
OxFS PUBLIC
include
)
install(
DIRECTORY
include/ox
DESTINATION
include
)
if(NOT OX_BARE_METAL)
add_executable(
oxfs-tool
tool.cpp
src/tool.cpp
)
target_link_libraries(
@@ -52,29 +62,6 @@ if(NOT OX_BARE_METAL)
)
endif()
install(
FILES
filestore/filestoretemplate.hpp
DESTINATION
include/ox/fs/filestore
)
install(
FILES
filesystem/filesystem.hpp
filesystem/pathiterator.hpp
DESTINATION
include/ox/fs/filesystem
)
install(
FILES
ptrarith/nodebuffer.hpp
ptrarith/ptr.hpp
DESTINATION
include/ox/fs/ptrarith
)
install(
TARGETS
OxFS
@@ -6,7 +6,7 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
#include "filestoretemplate.hpp"
#include <ox/fs/filestore/filestoretemplate.hpp>
namespace ox {
@@ -6,7 +6,7 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
#include "directory.hpp"
#include <ox/fs/filesystem/directory.hpp>
namespace ox {
@@ -8,7 +8,7 @@
#include <ox/model/modelops.hpp>
#include "filelocation.hpp"
#include <ox/fs/filesystem/filelocation.hpp>
namespace ox {
@@ -9,7 +9,7 @@
#include <ox/std/error.hpp>
#include <ox/std/utility.hpp>
#include "filesystem.hpp"
#include <ox/fs/filesystem/filesystem.hpp>
namespace ox {
@@ -8,7 +8,7 @@
#include <ox/std/error.hpp>
#include "passthroughfs.hpp"
#include <ox/fs/filesystem/passthroughfs.hpp>
#if defined(OX_HAS_PASSTHROUGHFS)
@@ -9,7 +9,7 @@
#include <ox/std/memops.hpp>
#include <ox/std/strops.hpp>
#include <ox/std/trace.hpp>
#include "pathiterator.hpp"
#include <ox/fs/filesystem/pathiterator.hpp>
OX_CLANG_NOWARN_BEGIN(-Wunsafe-buffer-usage)
@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.10)
add_library(
OxLogConn
logconn.cpp
src/logconn.cpp
)
set_property(
@@ -24,12 +24,16 @@ target_link_libraries(
$<$<BOOL:${OX_OS_WINDOWS}>:ws2_32>
)
target_include_directories(
OxLogConn PUBLIC
include
)
install(
FILES
circularbuff.hpp
logconn.hpp
DIRECTORY
include/ox
DESTINATION
include/ox/logconn
include
)
install(
@@ -23,7 +23,7 @@
#endif
#include "logconn.hpp"
#include <ox/logconn/logconn.hpp>
namespace ox {
@@ -1,7 +1,7 @@
add_library(
OxMetalClaw
read.cpp
write.cpp
src/read.cpp
src/write.cpp
)
if(NOT MSVC)
@@ -24,22 +24,22 @@ if(NOT OX_BARE_METAL)
)
endif()
install(
FILES
intops.hpp
err.hpp
mc.hpp
presenceindicator.hpp
read.hpp
types.hpp
write.hpp
DESTINATION
include/ox/mc
target_include_directories(
OxMetalClaw PUBLIC
include
)
install(TARGETS OxMetalClaw
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
install(
DIRECTORY
include/ox
DESTINATION
include
)
install(
TARGETS OxMetalClaw
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
if(OX_RUN_TESTS)
+1 -1
View File
@@ -10,7 +10,7 @@
#include <ox/std/buffer.hpp>
#include <ox/std/reader.hpp>
#include "read.hpp"
#include <ox/mc/read.hpp>
namespace ox {
+1 -1
View File
@@ -11,7 +11,7 @@
#include <ox/std/memops.hpp>
#include <ox/std/trace.hpp>
#include "write.hpp"
#include <ox/mc/write.hpp>
namespace ox {
+45
View File
@@ -0,0 +1,45 @@
add_library(
OxModel
src/desctypes.cpp
src/descwrite.cpp
src/modelvalue.cpp
)
if(NOT MSVC)
target_compile_options(OxModel PRIVATE -Wconversion)
target_compile_options(OxModel PRIVATE -Wsign-conversion)
endif()
target_link_libraries(
OxModel PUBLIC
OxStd
)
if(NOT OX_BARE_METAL)
set_property(
TARGET
OxModel
PROPERTY
POSITION_INDEPENDENT_CODE ON
)
endif()
target_link_libraries(
OxModel PUBLIC
OxStd
)
target_include_directories(
OxModel PUBLIC
include
)
install(
TARGETS OxModel
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
if(OX_RUN_TESTS)
add_subdirectory(test)
endif()
@@ -0,0 +1,7 @@
<Type> : <TypeName><FieldList>
<FieldList> : <FieldList> | <FieldList><Field>
<Field> : <FieldType><TypeID><FieldName>
<TypeID> : <TypeName> | <TypeName><Type>
<TypeName> : <string>
<FieldType> : <0: single> | <1: list>
<FieldName> : <string>
@@ -6,7 +6,7 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
#include "desctypes.hpp"
#include <ox/model/desctypes.hpp>
namespace ox {
@@ -6,7 +6,7 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
#include "descwrite.hpp"
#include <ox/model/descwrite.hpp>
namespace ox {
@@ -8,7 +8,7 @@
#include <ox/std/hashmap.hpp>
#include "modelvalue.hpp"
#include <ox/model/modelvalue.hpp>
namespace ox {
@@ -1,7 +1,7 @@
add_library(
OxOrganicClaw
read.cpp
write.cpp
src/read.cpp
src/write.cpp
)
if(NOT MSVC)
@@ -27,18 +27,22 @@ set_property(
POSITION_INDEPENDENT_CODE ON
)
install(
FILES
oc.hpp
read.hpp
write.hpp
DESTINATION
include/ox/oc
target_include_directories(
OxOrganicClaw PUBLIC
include
)
install(TARGETS OxOrganicClaw
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
install(
DIRECTORY
include/ox
DESTINATION
include
)
install(
TARGETS OxOrganicClaw
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
if(OX_RUN_TESTS)
+1 -1
View File
@@ -9,7 +9,7 @@
#include <ox/std/bit.hpp>
#include <utility>
#include "read.hpp"
#include <ox/oc/read.hpp>
namespace ox {
+1 -1
View File
@@ -6,7 +6,7 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
#include "write.hpp"
#include <ox/oc/write.hpp>
namespace ox {
-27
View File
@@ -1,27 +0,0 @@
if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
set(OX_OS_WINDOWS TRUE)
endif()
if(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
set(OX_OS_FREEBSD TRUE)
else()
set(OX_OS_FREEBSD FALSE)
endif()
if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
set(OX_OS_LINUX TRUE)
else()
set(OX_OS_LINUX FALSE)
endif()
if(OX_USE_STDLIB)
add_subdirectory(oc)
endif()
add_subdirectory(clargs)
add_subdirectory(claw)
add_subdirectory(event)
add_subdirectory(fs)
add_subdirectory(logconn)
add_subdirectory(mc)
add_subdirectory(model)
add_subdirectory(preloader)
add_subdirectory(std)
-46
View File
@@ -1,46 +0,0 @@
add_library(
OxEvent
signal.cpp
)
if(NOT MSVC)
target_compile_options(OxEvent PRIVATE -Wsign-conversion)
target_compile_options(OxEvent PRIVATE -Wconversion)
endif()
if(NOT OX_BARE_METAL)
set_property(
TARGET
OxEvent
PROPERTY
POSITION_INDEPENDENT_CODE ON
)
endif()
target_compile_definitions(
OxEvent PUBLIC
$<$<BOOL:${OX_USE_STDLIB}>:OX_USE_STDLIB>
$<$<BOOL:${OX_NODEBUG}>:OX_NODEBUG>
)
target_link_libraries(
OxEvent PUBLIC
OxStd
)
install(
FILES
event.hpp
signal.hpp
DESTINATION
include/ox/event
)
install(TARGETS OxEvent
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
if(OX_RUN_TESTS)
add_subdirectory(test)
endif()

Some files were not shown because too many files have changed in this diff Show More