f256/llvm-mos-sdk-patches/mos-platform/CMakeLists.txt
2023-12-30 17:05:38 -06:00

81 lines
2.5 KiB
CMake

include(platform)
if (CMAKE_CROSSCOMPILING)
add_compile_options(-flto)
else()
# Make nested build directory cross-compiling to MOS, but using this
# CMakeLists.txt.
ExternalProject_Add(mos-platform
SOURCE_DIR ${CMAKE_SOURCE_DIR}
BINARY_DIR build
INSTALL_DIR build/install
STAMP_DIR build/stamp
TMP_DIR build/tmp
DOWNLOAD_DIR build
CMAKE_ARGS
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_SOURCE_DIR}/cmake/llvm-mos-toolchain.cmake
-DCMAKE_C_COMPILER=${LLVM_MOS_C_COMPILER}
-DCMAKE_CXX_COMPILER=${LLVM_MOS_CXX_COMPILER}
-DCMAKE_ASM_COMPILER=${LLVM_MOS_ASM_COMPILER}
-DCMAKE_C_FLAGS=${LLVM_MOS_ARCH_FLAGS}
-DCMAKE_CXX_FLAGS=${LLVM_MOS_ARCH_FLAGS}
-DCMAKE_ASM_FLAGS=${LLVM_MOS_ARCH_FLAGS}
-DCMAKE_EXPORT_COMPILE_COMMANDS=${CMAKE_EXPORT_COMPILE_COMMANDS}
USES_TERMINAL_CONFIGURE On
USES_TERMINAL_BUILD On
USES_TERMINAL_INSTALL On
BUILD_ALWAYS On)
ExternalProject_Get_Property(mos-platform INSTALL_DIR)
install(DIRECTORY ${INSTALL_DIR}/ DESTINATION .)
# Clean the build directories with the host project.
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY
ADDITIONAL_CLEAN_FILES build ../examples)
find_package(Doxygen OPTIONAL_COMPONENTS dot)
if (Doxygen_FOUND)
set(DOXYGEN_FILE_PATTERNS *)
set(DOXYGEN_EXTENSION_MAPPING no_extension=C++)
set(DOXYGEN_EXTRACT_ALL YES)
set(DOXYGEN_EXCLUDE_SYMBOLS __*)
set(DOXYGEN_EXCLUDE_PATTERNS *.c *.cc *.s *.S *.cfg *.ld *.awk __*)
doxygen_add_docs(doxygen .)
endif()
endif()
add_subdirectory(common)
add_subdirectory(atari2600-common)
add_subdirectory(atari2600-4k)
add_subdirectory(atari2600-3e)
add_subdirectory(atari8-common)
add_subdirectory(atari8-dos)
add_subdirectory(atari8-stdcart)
add_subdirectory(atari8-xegs)
add_subdirectory(commodore)
add_subdirectory(c64)
add_subdirectory(c128)
add_subdirectory(cpm65)
add_subdirectory(cx16)
add_subdirectory(eater)
add_subdirectory(f256k)
add_subdirectory(mega65)
add_subdirectory(sim)
add_subdirectory(nes)
add_subdirectory(nes-action53)
add_subdirectory(nes-cnrom)
add_subdirectory(nes-gtrom)
add_subdirectory(nes-nrom)
add_subdirectory(nes-mmc1)
add_subdirectory(nes-mmc3)
add_subdirectory(nes-unrom)
add_subdirectory(nes-unrom-512)
add_subdirectory(osi-c1p)
add_subdirectory(dodo)
add_subdirectory(pet)
add_subdirectory(rpc8e)
add_subdirectory(pce-common)
add_subdirectory(pce)
add_subdirectory(pce-cd)
add_subdirectory(vic20)