mirror of
https://github.com/autc04/Retro68.git
synced 2024-11-29 12:50:35 +00:00
87 lines
2.5 KiB
CMake
87 lines
2.5 KiB
CMake
# Copyright 2015 Wolfgang Thaller.
|
|
#
|
|
# This file is part of Retro68.
|
|
#
|
|
# Retro68 is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# Retro68 is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# Under Section 7 of GPL version 3, you are granted additional
|
|
# permissions described in the GCC Runtime Library Exception, version
|
|
# 3.1, as published by the Free Software Foundation.
|
|
#
|
|
# You should have received a copy of the GNU General Public License and
|
|
# a copy of the GCC Runtime Library Exception along with this program;
|
|
# see the files COPYING and COPYING.RUNTIME respectively. If not, see
|
|
# <http://www.gnu.org/licenses/>.
|
|
|
|
cmake_minimum_required(VERSION 2.8)
|
|
|
|
if(CMAKE_SYSTEM_NAME MATCHES Retro68)
|
|
find_program(CONVERT_OBJ ConvertObj PATH "${CMAKE_INSTALL_PREFIX}/../bin/")
|
|
|
|
set(INTERFACE_O InterfaceO_NOTFOUND CACHE STRING "path to MPW Interface.o file")
|
|
add_custom_command(
|
|
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/Interface.s
|
|
COMMAND ${CONVERT_OBJ} ${INTERFACE_O} > ${CMAKE_CURRENT_BINARY_DIR}/Interface.s
|
|
)
|
|
enable_language(ASM)
|
|
|
|
set(ARCH_FILES
|
|
Retro68Runtime.h
|
|
start.c
|
|
relocate.c
|
|
PoorMansDebugging.h
|
|
MultiSegApp.c
|
|
LoadSeg.s
|
|
# glue.c
|
|
${CMAKE_CURRENT_BINARY_DIR}/Interface.s
|
|
qdglobals.c
|
|
Retro68.r
|
|
Retro68APPL.r
|
|
)
|
|
|
|
install(FILES Retro68Runtime.h DESTINATION include)
|
|
install(FILES Retro68.r Retro68APPL.r DESTINATION RIncludes)
|
|
|
|
elseif(CMAKE_SYSTEM_NAME MATCHES RetroPPC)
|
|
enable_language(ASM)
|
|
set(ARCH_FILES
|
|
ppcstart.c
|
|
ppcfpsave.s
|
|
qdglobals.c
|
|
RetroPPCAPPL.r)
|
|
install(FILES RetroPPCAPPL.r DESTINATION RIncludes)
|
|
elseif(CMAKE_SYSTEM_NAME MATCHES RetroCarbon)
|
|
enable_language(ASM)
|
|
set(ARCH_FILES
|
|
ppcstart.c
|
|
ppcfpsave.s
|
|
RetroCarbonAPPL.r)
|
|
install(FILES RetroCarbonAPPL.r DESTINATION RIncludes)
|
|
endif()
|
|
|
|
add_library(retrocrt
|
|
malloc.c
|
|
syscalls.c
|
|
consolehooks.c
|
|
${ARCH_FILES}
|
|
)
|
|
set_target_properties(retrocrt
|
|
PROPERTIES
|
|
COMPILE_OPTIONS -ffunction-sections)
|
|
|
|
install(TARGETS retrocrt DESTINATION lib)
|
|
|
|
# different library name for Carbon
|
|
# (Carbon shares the powerpc-apple-macos/ directory with Classic PPC)
|
|
if(CMAKE_SYSTEM_NAME MATCHES RetroCarbon)
|
|
set_target_properties(retrocrt PROPERTIES OUTPUT_NAME retrocrt-carbon)
|
|
endif()
|