Initial Commit
This commit is contained in:
24
CMake/CMakeASM_WDCInformation.cmake
Normal file
24
CMake/CMakeASM_WDCInformation.cmake
Normal file
@@ -0,0 +1,24 @@
|
||||
# WDC toolchain for CMake
|
||||
# Copyright (C) 2021 Tentei Ltd.
|
||||
# DISTRIBUTED AS PUBLIC DOMAIN. No restrictions apply.
|
||||
|
||||
set(CMAKE_ASM_WDC_SOURCE_FILE_EXTENSIONS asm;S;s)
|
||||
set(CMAKE_ASM_WDC_COMPILER_ARG1 "")
|
||||
set(CMAKE_ASM_WDC_DEFINE_FLAG "-D")
|
||||
set(CMAKE_ASM_WDC_FLAGS_DEBUG_INIT "-g -DDEBUG")
|
||||
set(CMAKE_ASM_WDC_VERBOSE_FLAG "-V" )
|
||||
set(CMAKE_DEPFILE_FLAGS_ASM_WDC "-K <DEP_FILE>")
|
||||
|
||||
set(CMAKE_ASM_WDC_COMPILER_AR wdclib CACHE PATH "WDC archiver")
|
||||
set(CMAKE_LINKER wdcld CACHE PATH "WDC linker")
|
||||
|
||||
set(CMAKE_ASM_WDC_COMPILE_OBJECT
|
||||
"<CMAKE_ASM_WDC_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -O <OBJECT> <SOURCE>")
|
||||
|
||||
set(CMAKE_ASM_WDC_LINK_EXECUTABLE
|
||||
"<CMAKE_LINKER> <LINK_FLAGS> <LINK_LIBRARIES> <OBJECTS> -O <TARGET>")
|
||||
|
||||
set(ASM_DIALECT "_WDC")
|
||||
include(CMakeASMInformation)
|
||||
set(CMAKE_INCLUDE_FLAG_ASM_WDC "-I")
|
||||
set(ASM_DIALECT)
|
||||
36
CMake/CMakeDetermineASM_WDCCompiler.cmake
Normal file
36
CMake/CMakeDetermineASM_WDCCompiler.cmake
Normal file
@@ -0,0 +1,36 @@
|
||||
# WDC toolchain for CMake
|
||||
# Copyright (C) 2021 Tentei Ltd.
|
||||
# DISTRIBUTED AS PUBLIC DOMAIN. No restrictions apply.
|
||||
|
||||
if(NOT CMAKE_ASM_WDC_COMPILER)
|
||||
SET(_COMPILER_LIST ca65)
|
||||
|
||||
find_program(
|
||||
CMAKE_ASM_WDC_COMPILER
|
||||
NAMES ${_COMPILER_LIST}
|
||||
DOC "WDC assembler")
|
||||
|
||||
unset(_COMPILER_LIST)
|
||||
|
||||
if(CMAKE_ASM_WDC_COMPILER)
|
||||
set(CMAKE_ASM_WDC_COMPILER_ID CA65 CACHE PATH "WDC assembler ID")
|
||||
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_ASM_WDC_COMPILER} --version
|
||||
OUTPUT_VARIABLE _OUTPUT1
|
||||
ERROR_VARIABLE _OUTPUT2)
|
||||
|
||||
if("${_OUTPUT1};${_OUTPUT2}" MATCHES ".*ca65 V([^\n]*)-.*")
|
||||
set(CMAKE_ASM_WDC_COMPILER_VERSION "${CMAKE_MATCH_1}" CACHE PATH "WDC assembler version")
|
||||
endif()
|
||||
|
||||
unset(_OUTPUT1)
|
||||
unset(_OUTPUT2)
|
||||
|
||||
include(Compiler/WDC)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(ASM_DIALECT "_WDC")
|
||||
include(CMakeDetermineASMCompiler)
|
||||
set(ASM_DIALECT)
|
||||
7
CMake/CMakeTestASM_WDCCompiler.cmake
Normal file
7
CMake/CMakeTestASM_WDCCompiler.cmake
Normal file
@@ -0,0 +1,7 @@
|
||||
# WDC toolchain for CMake
|
||||
# Copyright (C) 2021 Tentei Ltd.
|
||||
# DISTRIBUTED AS PUBLIC DOMAIN. No restrictions apply.
|
||||
|
||||
set(ASM_DIALECT "_WDC")
|
||||
include(CMakeTestASMCompiler)
|
||||
set(ASM_DIALECT)
|
||||
31
CMake/Compiler/WDC-C.cmake
Normal file
31
CMake/Compiler/WDC-C.cmake
Normal file
@@ -0,0 +1,31 @@
|
||||
# WDC toolchain for CMake
|
||||
# Copyright (C) 2021 Tentei Ltd.
|
||||
# DISTRIBUTED AS PUBLIC DOMAIN. No restrictions apply.
|
||||
|
||||
include(Compiler/WDC)
|
||||
|
||||
set(CMAKE_C_COMPILER_ID_RUN YES)
|
||||
set(CMAKE_C_COMPILER_ID_WORKS YES)
|
||||
set(CMAKE_C_COMPILER_ID_FORCED YES)
|
||||
|
||||
set(CMAKE_C_DEFINE_FLAG "-D")
|
||||
set(CMAKE_C_VERBOSE_FLAG "-V" )
|
||||
set(CMAKE_C_FLAGS_DEBUG_INIT "-g -DDEBUG")
|
||||
set(CMAKE_DEPFILE_FLAGS_C "--create-dep <DEP_FILE>")
|
||||
set(CMAKE_INCLUDE_FLAG_C "-I ")
|
||||
|
||||
set(CMAKE_C90_STANDARD_COMPILE_OPTION "--standard c89")
|
||||
set(CMAKE_C99_STANDARD_COMPILE_OPTION "--standard c99")
|
||||
|
||||
set(CMAKE_C_CREATE_ASSEMBLY_SOURCE
|
||||
"<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -A -O <OBJECT> <SOURCE>")
|
||||
|
||||
set(CMAKE_C_CREATE_PREPROCESSED_SOURCE
|
||||
"<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -LT -O <PREPROCESSED_SOURCE> <SOURCE>")
|
||||
|
||||
set(CMAKE_C_COMPILE_OBJECT
|
||||
"<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -O <OBJECT> <SOURCE> && \
|
||||
<CMAKE_ASM_WDC_COMPILER> -O <OBJECT> <OBJECT>")
|
||||
|
||||
set(CMAKE_C_LINK_EXECUTABLE
|
||||
"<CMAKE_LINKER> <LINK_FLAGS> <LINK_LIBRARIES> <OBJECTS> -O <TARGET>")
|
||||
104
CMake/Compiler/WDC.cmake
Normal file
104
CMake/Compiler/WDC.cmake
Normal file
@@ -0,0 +1,104 @@
|
||||
# WDC toolchain for CMake
|
||||
# Copyright (C) 2021 Tentei Ltd.
|
||||
# DISTRIBUTED AS PUBLIC DOMAIN. No restrictions apply.
|
||||
|
||||
include_guard()
|
||||
|
||||
if(CMAKE_SYSTEM_NAME)
|
||||
if(CMAKE_SYSTEM_NAME MATCHES AppleII)
|
||||
set(_SYSTEM apple2)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES AppleIIeEnhanced)
|
||||
set(_SYSTEM apple2enh)
|
||||
set(_CPU 65C02)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES Atari2600)
|
||||
set(_SYSTEM atari2600)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES Atari5200)
|
||||
set(_SYSTEM atari5200)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES Atmos)
|
||||
set(_SYSTEM atmos)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES BBCMicro)
|
||||
set(_SYSTEM bbc)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES CBMIIB)
|
||||
set(_SYSTEM cbm610)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES CBMIIP)
|
||||
set(_SYSTEM cbm510)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES Challenger1P)
|
||||
set(_SYSTEM osic1p)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES CommanderX16)
|
||||
set(_SYSTEM cx16)
|
||||
set(_CPU 65C02)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES Commodore16)
|
||||
set(_SYSTEM c16)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES Commodore64)
|
||||
set(_SYSTEM c64)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES Commodore128)
|
||||
set(_SYSTEM c128)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES CreatiVision)
|
||||
set(_SYSTEM creativision)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES Gamate)
|
||||
set(_SYSTEM gamate)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES Lynx)
|
||||
set(_SYSTEM lynx)
|
||||
set(_CPU 65SC02)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES LUnix)
|
||||
set(_SYSTEM lunix)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES NES)
|
||||
set(_SYSTEM nes)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES PCEngine)
|
||||
set(_SYSTEM pce)
|
||||
set(_CPU HuC6280)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES PET)
|
||||
set(_SYSTEM pet)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES Plus4)
|
||||
set(_SYSTEM plus4)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES Supervision)
|
||||
set(_SYSTEM supervision)
|
||||
set(_CPU 65SC02)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES Telestrat)
|
||||
set(_SYSTEM telestrat)
|
||||
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES VIC20)
|
||||
set(_SYSTEM vic20)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT _SYSTEM)
|
||||
set(_SYSTEM none)
|
||||
endif()
|
||||
|
||||
if(NOT _CPU)
|
||||
set(_CPU 6502)
|
||||
endif()
|
||||
|
||||
add_compile_options(--cpu ${_CPU} --target ${_SYSTEM})
|
||||
|
||||
unset(_SYSTEM)
|
||||
unset(_CPU)
|
||||
|
||||
find_program(CMAKE_AR wdclib DOC "WDC archiver")
|
||||
set(CMAKE_${lang}_COMPILER_AR ${CMAKE_AR} CACHE FILEPATH "WDC archiver" FORCE)
|
||||
find_program(CMAKE_LINKER wdcld DOC "WDC linker")
|
||||
|
||||
set(CMAKE_${lang}_RANLIB "" CACHE FILEPATH "")
|
||||
33
CMake/Platform/NES-Determine-C.cmake
Normal file
33
CMake/Platform/NES-Determine-C.cmake
Normal file
@@ -0,0 +1,33 @@
|
||||
# WDC toolchain for CMake
|
||||
# Copyright (C) 2021 Tentei Ltd.
|
||||
# DISTRIBUTED AS PUBLIC DOMAIN. No restrictions apply.
|
||||
|
||||
if(NOT CMAKE_C_COMPILER)
|
||||
SET(_COMPILER_LIST WDC)
|
||||
|
||||
find_program(
|
||||
CMAKE_C_COMPILER
|
||||
NAMES ${_COMPILER_LIST}
|
||||
DOC "WDC C compiler")
|
||||
|
||||
unset(_COMPILER_LIST)
|
||||
|
||||
if(CMAKE_C_COMPILER)
|
||||
set(CMAKE_C_COMPILER_ID WDC CACHE PATH "C compiler ID")
|
||||
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_C_COMPILER} --version
|
||||
OUTPUT_VARIABLE _OUTPUT1
|
||||
ERROR_VARIABLE _OUTPUT2)
|
||||
|
||||
if("${_OUTPUT1};${_OUTPUT2}" MATCHES ".*WDC V([^\n]*)-.*")
|
||||
set(CMAKE_C_COMPILER_VERSION "${CMAKE_MATCH_1}" CACHE PATH "C compiler version")
|
||||
endif()
|
||||
|
||||
unset(_OUTPUT1)
|
||||
unset(_OUTPUT2)
|
||||
|
||||
set(CMAKE_C_ABI_COMPILED YES)
|
||||
set(CMAKE_C_COMPILER_WORKS YES)
|
||||
endif()
|
||||
endif()
|
||||
6
CMake/Platform/NES.cmake
Normal file
6
CMake/Platform/NES.cmake
Normal file
@@ -0,0 +1,6 @@
|
||||
# WDC toolchain for CMake
|
||||
# Copyright (C) 2021 Tentei Ltd.
|
||||
# DISTRIBUTED AS PUBLIC DOMAIN. No restrictions apply.
|
||||
|
||||
set(NES 1)
|
||||
set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS NO)
|
||||
Reference in New Issue
Block a user