Retro68/libretro/CMakeLists.txt

85 lines
2.5 KiB
CMake
Raw Normal View History

# Copyright 2015 Wolfgang Thaller.
#
2014-09-14 22:43:30 +00:00
# This file is part of Retro68.
#
2014-09-14 22:43:30 +00:00
# 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.
#
2014-09-14 22:43:30 +00:00
# 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/>.
2015-08-31 14:44:45 +00:00
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)
2015-08-31 14:44:45 +00:00
set(ARCH_FILES
Retro68Runtime.h
start.c
relocate.c
2017-09-23 20:36:47 +00:00
PoorMansDebugging.h
2017-09-26 00:38:05 +00:00
MultiSegApp.c
LoadSeg.s
# glue.c
${CMAKE_CURRENT_BINARY_DIR}/Interface.s
2015-10-06 22:03:28 +00:00
qdglobals.c
2015-08-31 14:44:45 +00:00
Retro68.r
Retro68APPL.r
)
2017-09-23 20:36:47 +00:00
2015-08-31 14:44:45 +00:00
install(FILES Retro68Runtime.h DESTINATION include)
install(FILES Retro68.r Retro68APPL.r DESTINATION RIncludes)
2017-09-26 00:38:05 +00:00
2015-10-06 22:03:28 +00:00
elseif(CMAKE_SYSTEM_NAME MATCHES RetroPPC)
2015-09-08 16:01:17 +00:00
enable_language(ASM)
2015-09-08 23:25:59 +00:00
set(ARCH_FILES
ppcstart.c
ppcfpsave.s
2015-10-06 22:03:28 +00:00
qdglobals.c
2015-09-08 23:25:59 +00:00
RetroPPCAPPL.r)
install(FILES RetroPPCAPPL.r DESTINATION RIncludes)
2015-10-06 22:03:28 +00:00
elseif(CMAKE_SYSTEM_NAME MATCHES RetroCarbon)
enable_language(ASM)
set(ARCH_FILES
ppcstart.c
ppcfpsave.s
RetroCarbonAPPL.r)
install(FILES RetroCarbonAPPL.r DESTINATION RIncludes)
2015-08-31 14:44:45 +00:00
endif()
add_library(retrocrt
2014-09-14 22:43:30 +00:00
malloc.c
syscalls.c
consolehooks.c
2015-08-31 14:44:45 +00:00
${ARCH_FILES}
)
set_target_properties(retrocrt
PROPERTIES
COMPILE_OPTIONS -ffunction-sections)
2012-04-05 22:45:04 +00:00
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()