From b20d257fe1071f2eae0b7dc55a743174ae983156 Mon Sep 17 00:00:00 2001 From: Cameron Cawley Date: Thu, 3 Feb 2022 15:26:37 +0000 Subject: [PATCH 1/4] nds-cmake: new package --- cmake/nds/NDS.cmake | 32 +++++++++++ cmake/nds/NintendoDS.cmake | 101 ++++++++++++++++++++++++++++++++++ cmake/nds/PKGBUILD | 32 +++++++++++ cmake/nds/arm-none-eabi-cmake | 4 ++ 4 files changed, 169 insertions(+) create mode 100644 cmake/nds/NDS.cmake create mode 100644 cmake/nds/NintendoDS.cmake create mode 100644 cmake/nds/PKGBUILD create mode 100755 cmake/nds/arm-none-eabi-cmake diff --git a/cmake/nds/NDS.cmake b/cmake/nds/NDS.cmake new file mode 100644 index 000000000..4c15e0ce1 --- /dev/null +++ b/cmake/nds/NDS.cmake @@ -0,0 +1,32 @@ +cmake_minimum_required(VERSION 3.7) + +if(NOT CMAKE_SYSTEM_NAME) + set(CMAKE_SYSTEM_NAME NintendoDS) +endif() + +if(NOT CMAKE_SYSTEM_PROCESSOR) + set(CMAKE_SYSTEM_PROCESSOR armv5te) +endif() + +# Import devkitARM toolchain +include(${CMAKE_CURRENT_LIST_DIR}/devkitARM.cmake) + +list(APPEND CMAKE_FIND_ROOT_PATH + ${DEVKITPRO}/portlibs/nds + ${DEVKITPRO}/libnds +) + +find_program(PKG_CONFIG_EXECUTABLE NAMES arm-none-eabi-pkg-config HINTS "${DEVKITPRO}/portlibs/nds/bin") +if (NOT PKG_CONFIG_EXECUTABLE) + message(WARNING "Could not find arm-none-eabi-pkg-config: try installing nds-pkg-config") +endif() + +find_program(NDS_NDSTOOL_EXE NAMES ndstool HINTS "${DEVKITPRO}/tools/bin") +if (NOT NDS_NDSTOOL_EXE) + message(WARNING "Could not find ndstool: try installing ndstool") +endif() + +find_file(NDS_DEFAULT_ICON NAMES icon.bmp HINTS "${DEVKITPRO}/libnds" NO_CMAKE_FIND_ROOT_PATH) +if (NOT NDS_DEFAULT_ICON) + message(WARNING "Could not find default icon: try installing libnds") +endif() diff --git a/cmake/nds/NintendoDS.cmake b/cmake/nds/NintendoDS.cmake new file mode 100644 index 000000000..2f4ff1429 --- /dev/null +++ b/cmake/nds/NintendoDS.cmake @@ -0,0 +1,101 @@ +# ----------------------------------------------------------------------------- +# Platform configuration + +# Include guard +if(NINTENDO_DS) + return() +endif() + +# Inherit settings from CMake's built-in Generic platform +include(Platform/Generic) + +set(NINTENDO_DS TRUE) +set(NDS_ROOT ${DEVKITPRO}/libnds) + +set(NDS_ARCH_SETTINGS "-march=armv5te -mtune=arm946e-s") +set(NDS_COMMON_FLAGS "${NDS_ARCH_SETTINGS} -ffunction-sections -fdata-sections -D__NDS__ -DARM9") +set(NDS_LIB_DIRS "-L${DEVKITPRO}/libnds/lib -L${DEVKITPRO}/portlibs/nds/lib") + +set(NDS_STANDARD_LIBRARIES "-lnds9") +set(NDS_STANDARD_INCLUDE_DIRECTORIES "${NDS_ROOT}/include") + +set(CMAKE_EXECUTABLE_SUFFIX .elf) + +set(CMAKE_C_FLAGS_INIT "${NDS_COMMON_FLAGS}") +set(CMAKE_CXX_FLAGS_INIT "${NDS_COMMON_FLAGS}") +set(CMAKE_ASM_FLAGS_INIT "${NDS_COMMON_FLAGS}") +set(CMAKE_EXE_LINKER_FLAGS_INIT "${NDS_ARCH_SETTINGS} ${NDS_LIB_DIRS} -specs=ds_arm9.specs") + +set(CMAKE_C_STANDARD_LIBRARIES "${NDS_STANDARD_LIBRARIES}" CACHE STRING "" FORCE) +set(CMAKE_CXX_STANDARD_LIBRARIES "${NDS_STANDARD_LIBRARIES}" CACHE STRING "" FORCE) +set(CMAKE_ASM_STANDARD_LIBRARIES "${NDS_STANDARD_LIBRARIES}" CACHE STRING "" FORCE) + +set(CMAKE_C_STANDARD_INCLUDE_DIRECTORIES "${NDS_STANDARD_INCLUDE_DIRECTORIES}" CACHE STRING "") +set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES "${NDS_STANDARD_INCLUDE_DIRECTORIES}" CACHE STRING "") +set(CMAKE_ASM_STANDARD_INCLUDE_DIRECTORIES "${NDS_STANDARD_INCLUDE_DIRECTORIES}" CACHE STRING "") + +# ----------------------------------------------------------------------------- +# Platform-specific helper utilities + +# Include common devkitPro bits and pieces +include(dkp-linker-utils) +include(dkp-custom-target) +include(dkp-embedded-binary) +include(dkp-asset-folder) + +function(nds_create_rom target) + cmake_parse_arguments(NDSTOOL "" "NAME;SUBTITLE1;SUBTITLE2;ICON;ROMFS" "" ${ARGN}) + get_target_property(TARGET_OUTPUT_NAME ${target} OUTPUT_NAME) + if(NOT TARGET_OUTPUT_NAME) + set(TARGET_OUTPUT_NAME "${target}") + endif() + + set(NDSTOOL_ARGS -c "${TARGET_OUTPUT_NAME}.nds" -9 "$") + set(NDSTOOL_DEPS ${target}) + + if (NOT DEFINED NDSTOOL_NAME) + set(NDSTOOL_NAME "${CMAKE_PROJECT_NAME}") + endif() + if (NOT DEFINED NDSTOOL_SUBTITLE1) + set(NDSTOOL_SUBTITLE1 "Built with devkitARM") + endif() + if (NOT DEFINED NDSTOOL_SUBTITLE2) + set(NDSTOOL_SUBTITLE2 "http://devkitpro.org") + endif() + if (NOT DEFINED NDSTOOL_ICON) + set(NDSTOOL_ICON "${NDS_DEFAULT_ICON}") + endif() + list(APPEND NDSTOOL_ARGS -b "${NDSTOOL_ICON}" "${NDSTOOL_NAME}\;${NDSTOOL_SUBTITLE1}\;${NDSTOOL_SUBTITLE2}") + list(APPEND NDSTOOL_DEPS "${NDSTOOL_ICON}") + + if (DEFINED NDSTOOL_ROMFS) + if (TARGET "${NDSTOOL_ROMFS}") + get_target_property(_folder "${NDSTOOL_ROMFS}" DKP_ASSET_FOLDER) + if (NOT _folder) + message(FATAL_ERROR "nds_create_rom: not a valid asset target") + endif() + list(APPEND NDSTOOL_ARGS -d "${_folder}") + list(APPEND NDSTOOL_DEPS ${NDSTOOL_ROMFS} $) + else() + if (NOT IS_ABSOLUTE "${NDSTOOL_ROMFS}") + set(NDSTOOL_ROMFS "${CMAKE_CURRENT_LIST_DIR}/${NDSTOOL_ROMFS}") + endif() + if (NOT IS_DIRECTORY "${NDSTOOL_ROMFS}") + message(FATAL_ERROR "nds_create_rom: cannot find romfs dir: ${NDSTOOL_ROMFS}") + endif() + list(APPEND NDSTOOL_ARGS -d "${NDSTOOL_ROMFS}") + endif() + endif() + + add_custom_command( + OUTPUT "${TARGET_OUTPUT_NAME}.nds" + COMMAND "${NDS_NDSTOOL_EXE}" ${NDSTOOL_ARGS} + DEPENDS ${NDSTOOL_DEPS} + VERBATIM + ) + + add_custom_target( + "${target}_nds" ALL + DEPENDS "${TARGET_OUTPUT_NAME}.nds" + ) +endfunction() diff --git a/cmake/nds/PKGBUILD b/cmake/nds/PKGBUILD new file mode 100644 index 000000000..750a95c55 --- /dev/null +++ b/cmake/nds/PKGBUILD @@ -0,0 +1,32 @@ +# Contributor: Cameron Cawley +pkgname=nds-cmake +pkgver=1.0.0 +pkgrel=1 +pkgdesc="CMake support for Nintendo DS" +arch=('any') +url='https://devkitpro.org/' +source=( + 'arm-none-eabi-cmake' + 'NDS.cmake' + 'NintendoDS.cmake' +) +options=('!strip') +depends=('devkitarm-cmake') +groups=('nds-dev') + +sha256sums=( + '4e4eb21c4de42f18caffff9d97eb47e9f368991fd6e429b00dee9edf20a721ae' # arm-none-eabi-cmake + '9a244a483bfabf891bfcbfbc4965845c6621e1a7a1bb225621724cb210876dce' # NDS.cmake + '734bd59e37dbc0883c42393db90502eea8e4840455576920bffc0e4285b60c12' # NintendoDS.cmake +) + +package() { + + install -d "$pkgdir"/opt/devkitpro/portlibs/nds/bin + cp "$srcdir"/arm-none-eabi-cmake "$pkgdir"/opt/devkitpro/portlibs/nds/bin/ + install -d "$pkgdir"/opt/devkitpro/cmake + cp "${srcdir}"/NDS.cmake "$pkgdir"/opt/devkitpro/cmake + install -d "$pkgdir"/opt/devkitpro/cmake/Platform + cp "${srcdir}"/NintendoDS.cmake "$pkgdir"/opt/devkitpro/cmake/Platform + +} diff --git a/cmake/nds/arm-none-eabi-cmake b/cmake/nds/arm-none-eabi-cmake new file mode 100755 index 000000000..f2c6ec3ef --- /dev/null +++ b/cmake/nds/arm-none-eabi-cmake @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +set -e + +exec cmake -DCMAKE_TOOLCHAIN_FILE=${DEVKITPRO}/cmake/NDS.cmake "$@" From 3a7422042638825e6e2ec602197f9fd5b2346f12 Mon Sep 17 00:00:00 2001 From: Cameron Cawley Date: Thu, 3 Feb 2022 17:52:09 +0000 Subject: [PATCH 2/4] nds-cmake: Support building ARM7 executables --- cmake/nds/NintendoDS.cmake | 85 +++++++++++++++++++++++++++++++++----- cmake/nds/PKGBUILD | 2 +- 2 files changed, 75 insertions(+), 12 deletions(-) diff --git a/cmake/nds/NintendoDS.cmake b/cmake/nds/NintendoDS.cmake index 2f4ff1429..c3fb739df 100644 --- a/cmake/nds/NintendoDS.cmake +++ b/cmake/nds/NintendoDS.cmake @@ -12,11 +12,24 @@ include(Platform/Generic) set(NINTENDO_DS TRUE) set(NDS_ROOT ${DEVKITPRO}/libnds) -set(NDS_ARCH_SETTINGS "-march=armv5te -mtune=arm946e-s") -set(NDS_COMMON_FLAGS "${NDS_ARCH_SETTINGS} -ffunction-sections -fdata-sections -D__NDS__ -DARM9") -set(NDS_LIB_DIRS "-L${DEVKITPRO}/libnds/lib -L${DEVKITPRO}/portlibs/nds/lib") +if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "armv5te") + set(NDS_ARCH_SETTINGS "-march=armv5te -mtune=arm946e-s") + set(NDS_COMMON_FLAGS "${NDS_ARCH_SETTINGS} -ffunction-sections -fdata-sections -D__NDS__ -DARM9") + set(NDS_LIB_DIRS "-L${DEVKITPRO}/libnds/lib -L${DEVKITPRO}/portlibs/nds/lib") + + set(NDS_STANDARD_LIBRARIES "-lnds9") + set(NDS_LINKER_FLAGS "-specs=ds_arm9.specs") +elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "armv4t") + set(NDS_ARCH_SETTINGS "-march=armv4t -mthumb -mthumb-interwork") + set(NDS_COMMON_FLAGS "${NDS_ARCH_SETTINGS} -ffunction-sections -fdata-sections -D__NDS__ -DARM7") + set(NDS_LIB_DIRS "-L${DEVKITPRO}/libnds/lib") + + set(NDS_STANDARD_LIBRARIES "-lnds7") + set(NDS_LINKER_FLAGS "-specs=ds_arm7.specs") +else() + message(FATAL_ERROR "Unknown value for CMAKE_SYSTEM_PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR}") +endif() -set(NDS_STANDARD_LIBRARIES "-lnds9") set(NDS_STANDARD_INCLUDE_DIRECTORIES "${NDS_ROOT}/include") set(CMAKE_EXECUTABLE_SUFFIX .elf) @@ -24,7 +37,7 @@ set(CMAKE_EXECUTABLE_SUFFIX .elf) set(CMAKE_C_FLAGS_INIT "${NDS_COMMON_FLAGS}") set(CMAKE_CXX_FLAGS_INIT "${NDS_COMMON_FLAGS}") set(CMAKE_ASM_FLAGS_INIT "${NDS_COMMON_FLAGS}") -set(CMAKE_EXE_LINKER_FLAGS_INIT "${NDS_ARCH_SETTINGS} ${NDS_LIB_DIRS} -specs=ds_arm9.specs") +set(CMAKE_EXE_LINKER_FLAGS_INIT "${NDS_ARCH_SETTINGS} ${NDS_LIB_DIRS} ${NDS_LINKER_FLAGS}") set(CMAKE_C_STANDARD_LIBRARIES "${NDS_STANDARD_LIBRARIES}" CACHE STRING "" FORCE) set(CMAKE_CXX_STANDARD_LIBRARIES "${NDS_STANDARD_LIBRARIES}" CACHE STRING "" FORCE) @@ -44,14 +57,43 @@ include(dkp-embedded-binary) include(dkp-asset-folder) function(nds_create_rom target) - cmake_parse_arguments(NDSTOOL "" "NAME;SUBTITLE1;SUBTITLE2;ICON;ROMFS" "" ${ARGN}) - get_target_property(TARGET_OUTPUT_NAME ${target} OUTPUT_NAME) - if(NOT TARGET_OUTPUT_NAME) + cmake_parse_arguments(NDSTOOL "" "ARM9;ARM7;NAME;SUBTITLE1;SUBTITLE2;ICON;ROMFS" "" ${ARGN}) + + if (TARGET "${target}") + get_target_property(TARGET_OUTPUT_NAME ${target} OUTPUT_NAME) + if(NOT TARGET_OUTPUT_NAME) + set(TARGET_OUTPUT_NAME "${target}") + endif() + else () set(TARGET_OUTPUT_NAME "${target}") - endif() + endif () - set(NDSTOOL_ARGS -c "${TARGET_OUTPUT_NAME}.nds" -9 "$") - set(NDSTOOL_DEPS ${target}) + set(NDSTOOL_ARGS -c "${TARGET_OUTPUT_NAME}.nds") + set(NDSTOOL_DEPS) + + if (DEFINED NDSTOOL_ARM9) + if (TARGET "${NDSTOOL_ARM9}") + list(APPEND NDSTOOL_ARGS -9 "$") + list(APPEND NDSTOOL_DEPS ${NDSTOOL_ARM9}) + else() + list(APPEND NDSTOOL_ARGS -9 "${NDSTOOL_ARM9}") + endif() + elseif ("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "armv5te") + list(APPEND NDSTOOL_ARGS -9 "$") + list(APPEND NDSTOOL_DEPS ${target}) + endif () + + if (DEFINED NDSTOOL_ARM7) + if (TARGET "${NDSTOOL_ARM7}") + list(APPEND NDSTOOL_ARGS -7 "$") + list(APPEND NDSTOOL_DEPS ${NDSTOOL_ARM7}) + else() + list(APPEND NDSTOOL_ARGS -7 "${NDSTOOL_ARM7}") + endif() + elseif ("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "armv4t") + list(APPEND NDSTOOL_ARGS -7 "$") + list(APPEND NDSTOOL_DEPS ${target}) + endif () if (NOT DEFINED NDSTOOL_NAME) set(NDSTOOL_NAME "${CMAKE_PROJECT_NAME}") @@ -99,3 +141,24 @@ function(nds_create_rom target) DEPENDS "${TARGET_OUTPUT_NAME}.nds" ) endfunction() + +function(nds_build_arm7 target) + cmake_parse_arguments(ARM7 "" "CMAKE_ARGS;SOURCE_DIR;OUTPUT_NAME" "" ${ARGN}) + + if(NOT ARM7_OUTPUT_NAME) + set(ARM7_OUTPUT_NAME "${target}") + endif() + + include(ExternalProject) + ExternalProject_Add(${target}_project + CMAKE_ARGS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE};-DCMAKE_SYSTEM_PROCESSOR=armv4t;${ARM7_CMAKE_ARGS}" + SOURCE_DIR "${ARM7_SOURCE_DIR}" + UPDATE_COMMAND "" + INSTALL_COMMAND "" + ) + ExternalProject_Get_Property(${target}_project BINARY_DIR) + + add_executable(${target} IMPORTED) + add_dependencies(${target} ${target}_project) + set_target_properties(${target} PROPERTIES IMPORTED_LOCATION ${BINARY_DIR}/${ARM7_OUTPUT_NAME}${CMAKE_EXECUTABLE_SUFFIX}) +endfunction() diff --git a/cmake/nds/PKGBUILD b/cmake/nds/PKGBUILD index 750a95c55..48b72bd2f 100644 --- a/cmake/nds/PKGBUILD +++ b/cmake/nds/PKGBUILD @@ -17,7 +17,7 @@ groups=('nds-dev') sha256sums=( '4e4eb21c4de42f18caffff9d97eb47e9f368991fd6e429b00dee9edf20a721ae' # arm-none-eabi-cmake '9a244a483bfabf891bfcbfbc4965845c6621e1a7a1bb225621724cb210876dce' # NDS.cmake - '734bd59e37dbc0883c42393db90502eea8e4840455576920bffc0e4285b60c12' # NintendoDS.cmake + '2abd27932a3f2fcc102063ddcd795eeb0b972468717af66a5eba09c1c66f4089' # NintendoDS.cmake ) package() { From a9f4a08e42d7b0b91389cfb12c893d37ba20f1e4 Mon Sep 17 00:00:00 2001 From: Cameron Cawley Date: Thu, 10 Feb 2022 21:37:19 +0000 Subject: [PATCH 3/4] nds-cmake: Rename ROMFS to NITROFS --- cmake/nds/NintendoDS.cmake | 20 ++++++++++---------- cmake/nds/PKGBUILD | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/cmake/nds/NintendoDS.cmake b/cmake/nds/NintendoDS.cmake index c3fb739df..fb510aa73 100644 --- a/cmake/nds/NintendoDS.cmake +++ b/cmake/nds/NintendoDS.cmake @@ -57,7 +57,7 @@ include(dkp-embedded-binary) include(dkp-asset-folder) function(nds_create_rom target) - cmake_parse_arguments(NDSTOOL "" "ARM9;ARM7;NAME;SUBTITLE1;SUBTITLE2;ICON;ROMFS" "" ${ARGN}) + cmake_parse_arguments(NDSTOOL "" "ARM9;ARM7;NAME;SUBTITLE1;SUBTITLE2;ICON;NITROFS" "" ${ARGN}) if (TARGET "${target}") get_target_property(TARGET_OUTPUT_NAME ${target} OUTPUT_NAME) @@ -110,22 +110,22 @@ function(nds_create_rom target) list(APPEND NDSTOOL_ARGS -b "${NDSTOOL_ICON}" "${NDSTOOL_NAME}\;${NDSTOOL_SUBTITLE1}\;${NDSTOOL_SUBTITLE2}") list(APPEND NDSTOOL_DEPS "${NDSTOOL_ICON}") - if (DEFINED NDSTOOL_ROMFS) - if (TARGET "${NDSTOOL_ROMFS}") - get_target_property(_folder "${NDSTOOL_ROMFS}" DKP_ASSET_FOLDER) + if (DEFINED NDSTOOL_NITROFS) + if (TARGET "${NDSTOOL_NITROFS}") + get_target_property(_folder "${NDSTOOL_NITROFS}" DKP_ASSET_FOLDER) if (NOT _folder) message(FATAL_ERROR "nds_create_rom: not a valid asset target") endif() list(APPEND NDSTOOL_ARGS -d "${_folder}") - list(APPEND NDSTOOL_DEPS ${NDSTOOL_ROMFS} $) + list(APPEND NDSTOOL_DEPS ${NDSTOOL_NITROFS} $) else() - if (NOT IS_ABSOLUTE "${NDSTOOL_ROMFS}") - set(NDSTOOL_ROMFS "${CMAKE_CURRENT_LIST_DIR}/${NDSTOOL_ROMFS}") + if (NOT IS_ABSOLUTE "${NDSTOOL_NITROFS}") + set(NDSTOOL_NITROFS "${CMAKE_CURRENT_LIST_DIR}/${NDSTOOL_NITROFS}") endif() - if (NOT IS_DIRECTORY "${NDSTOOL_ROMFS}") - message(FATAL_ERROR "nds_create_rom: cannot find romfs dir: ${NDSTOOL_ROMFS}") + if (NOT IS_DIRECTORY "${NDSTOOL_NITROFS}") + message(FATAL_ERROR "nds_create_rom: cannot find romfs dir: ${NDSTOOL_NITROFS}") endif() - list(APPEND NDSTOOL_ARGS -d "${NDSTOOL_ROMFS}") + list(APPEND NDSTOOL_ARGS -d "${NDSTOOL_NITROFS}") endif() endif() diff --git a/cmake/nds/PKGBUILD b/cmake/nds/PKGBUILD index 48b72bd2f..5f4554e1c 100644 --- a/cmake/nds/PKGBUILD +++ b/cmake/nds/PKGBUILD @@ -17,7 +17,7 @@ groups=('nds-dev') sha256sums=( '4e4eb21c4de42f18caffff9d97eb47e9f368991fd6e429b00dee9edf20a721ae' # arm-none-eabi-cmake '9a244a483bfabf891bfcbfbc4965845c6621e1a7a1bb225621724cb210876dce' # NDS.cmake - '2abd27932a3f2fcc102063ddcd795eeb0b972468717af66a5eba09c1c66f4089' # NintendoDS.cmake + '1e2ade8a227eb2e6d9c0b0534de874b6bafda198b8631a1382778e1a5e7fd3a7' # NintendoDS.cmake ) package() { From e0e7907ce761cbb679f33ffd02c081fce16d59c9 Mon Sep 17 00:00:00 2001 From: Cameron Cawley Date: Thu, 10 Feb 2022 21:45:15 +0000 Subject: [PATCH 4/4] nds-cmake: Drop nds_build_arm7 for now --- cmake/nds/NintendoDS.cmake | 41 ++------------------------------------ cmake/nds/PKGBUILD | 2 +- 2 files changed, 3 insertions(+), 40 deletions(-) diff --git a/cmake/nds/NintendoDS.cmake b/cmake/nds/NintendoDS.cmake index fb510aa73..1934cf324 100644 --- a/cmake/nds/NintendoDS.cmake +++ b/cmake/nds/NintendoDS.cmake @@ -57,7 +57,7 @@ include(dkp-embedded-binary) include(dkp-asset-folder) function(nds_create_rom target) - cmake_parse_arguments(NDSTOOL "" "ARM9;ARM7;NAME;SUBTITLE1;SUBTITLE2;ICON;NITROFS" "" ${ARGN}) + cmake_parse_arguments(NDSTOOL "" "NAME;SUBTITLE1;SUBTITLE2;ICON;NITROFS" "" ${ARGN}) if (TARGET "${target}") get_target_property(TARGET_OUTPUT_NAME ${target} OUTPUT_NAME) @@ -71,25 +71,9 @@ function(nds_create_rom target) set(NDSTOOL_ARGS -c "${TARGET_OUTPUT_NAME}.nds") set(NDSTOOL_DEPS) - if (DEFINED NDSTOOL_ARM9) - if (TARGET "${NDSTOOL_ARM9}") - list(APPEND NDSTOOL_ARGS -9 "$") - list(APPEND NDSTOOL_DEPS ${NDSTOOL_ARM9}) - else() - list(APPEND NDSTOOL_ARGS -9 "${NDSTOOL_ARM9}") - endif() - elseif ("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "armv5te") + if ("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "armv5te") list(APPEND NDSTOOL_ARGS -9 "$") list(APPEND NDSTOOL_DEPS ${target}) - endif () - - if (DEFINED NDSTOOL_ARM7) - if (TARGET "${NDSTOOL_ARM7}") - list(APPEND NDSTOOL_ARGS -7 "$") - list(APPEND NDSTOOL_DEPS ${NDSTOOL_ARM7}) - else() - list(APPEND NDSTOOL_ARGS -7 "${NDSTOOL_ARM7}") - endif() elseif ("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "armv4t") list(APPEND NDSTOOL_ARGS -7 "$") list(APPEND NDSTOOL_DEPS ${target}) @@ -141,24 +125,3 @@ function(nds_create_rom target) DEPENDS "${TARGET_OUTPUT_NAME}.nds" ) endfunction() - -function(nds_build_arm7 target) - cmake_parse_arguments(ARM7 "" "CMAKE_ARGS;SOURCE_DIR;OUTPUT_NAME" "" ${ARGN}) - - if(NOT ARM7_OUTPUT_NAME) - set(ARM7_OUTPUT_NAME "${target}") - endif() - - include(ExternalProject) - ExternalProject_Add(${target}_project - CMAKE_ARGS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE};-DCMAKE_SYSTEM_PROCESSOR=armv4t;${ARM7_CMAKE_ARGS}" - SOURCE_DIR "${ARM7_SOURCE_DIR}" - UPDATE_COMMAND "" - INSTALL_COMMAND "" - ) - ExternalProject_Get_Property(${target}_project BINARY_DIR) - - add_executable(${target} IMPORTED) - add_dependencies(${target} ${target}_project) - set_target_properties(${target} PROPERTIES IMPORTED_LOCATION ${BINARY_DIR}/${ARM7_OUTPUT_NAME}${CMAKE_EXECUTABLE_SUFFIX}) -endfunction() diff --git a/cmake/nds/PKGBUILD b/cmake/nds/PKGBUILD index 5f4554e1c..73de9a3cb 100644 --- a/cmake/nds/PKGBUILD +++ b/cmake/nds/PKGBUILD @@ -17,7 +17,7 @@ groups=('nds-dev') sha256sums=( '4e4eb21c4de42f18caffff9d97eb47e9f368991fd6e429b00dee9edf20a721ae' # arm-none-eabi-cmake '9a244a483bfabf891bfcbfbc4965845c6621e1a7a1bb225621724cb210876dce' # NDS.cmake - '1e2ade8a227eb2e6d9c0b0534de874b6bafda198b8631a1382778e1a5e7fd3a7' # NintendoDS.cmake + 'f17b3324ca39713a2debfb349fc7663d96ea1eccbbf346584390b3bf01bd2af2' # NintendoDS.cmake ) package() {