Last active
August 29, 2015 14:07
-
-
Save hostilefork/c086c1549cfccae7fc92 to your computer and use it in GitHub Desktop.
Tinker to try and make a Rebol dialected version of the CMake build file WIP for Rebol
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Rebmake [ | |
Title: "Rebol Dialected Experiment to represent CMake files" | |
;; See: | |
;; http://curecode.org/rebol3/ticket.rsp?id=2177 | |
;; http://browsenpm.org/package.json#dependencies | |
Needs: [ | |
1.0 | |
cmake 2.8 | |
] | |
;; http://www.cmake.org/cmake/help/v3.0/command/project.html | |
Title: "rebol3" | |
Languages: [c] | |
] | |
;;; Target platform detection | |
case [ | |
CMAKE_SYSTEM_NAME = "Darwin" [ | |
R3_OSX: on | |
] | |
CMAKE_SYSTEM_NAME = "Windows" [ | |
R3_WIN32: on | |
] | |
CMAKE_SYSTEM_NAME = "Linux" [ | |
R3_LINUX: on | |
] | |
] | |
add/definitions {-DREB_CORE} | |
add/definitions {-DREB_EXE} | |
;; Current thinking is that parentheses run a COMBINE on the contents. | |
;; So could also have written: | |
;; | |
;; add/definitions ({-DREB_CORE} space {-DREB_EXE}) | |
;; | |
;; or just one string... | |
;; | |
;; add/definitions {-DREB_CORE -DREB_EXE} | |
include/directories (PROJECT_SOURCE_DIR %/src/include) | |
add/subdirectory (PROJECT_SOURCE_DIR "/src/core") | |
add/subdirectory (PROJECT_SOURCE_DIR "/src/os") | |
;-- Rebol 3 command used for bootstrap (in the "prepare" target). | |
R3_MAKE: find/program [ | |
"r3-make" ;-- or list of names... | |
; /HINTS path1 path2 ... ENV var | |
; /PATHS path1 path2 ... ENV var | |
; /PATH-SUFFIXES suffix1 suffix2 ... ;-- Is SUFFIXES enough? | |
; /DOC "cache documentation string" | |
; /DEFAULT-PATH no ;-- as opposed to NO_DEFAULT_PATH | |
; /CMAKE-ENVIRONMENT-PATH no | |
; /CMAKE-PATH no | |
; /SYSTEM-ENVIRONMENT-PATH no | |
; /CMAKE-SYSTEM-PATH no | |
; /CMAKE_FIND_ROOT_PATH both, only, no ??? | |
] | |
R3_MAKE_CMD: (R3_MAKE space {-qs}) | |
;-- Platform-specific configuration | |
if R3_OSX [ | |
R3_TARGET: "2.5" | |
; Host sources | |
R3_HOST_SUBDIR: "posix" | |
; Definitions | |
add/definitions {-DTO_OSXI} | |
add/definitions {-D_FILE_OFFSET_BITS=64} | |
; Compiler/linker flags | |
CMAKE_C_FLAGS: (CMAKE_C_FLAGS space {-arch i386}) | |
CMAKE_C_FLAGS: (CMAKE_C_FLAGS space {-Wno-pointer-sign}) | |
CMAKE_C_FLAGS: (CMAKE_C_FLAGS space {-fPIC}) | |
CMAKE_C_FLAGS: (CMAKE_C_FLAGS space {-fvisibility=hidden}) | |
CMAKE_C_FLAGS: (CMAKE_C_FLAGS space {-fno-common}) | |
; Libraries | |
LIBM: find/library "m" | |
R3_LIBS: LIBM | |
] | |
if R3_WIN32 [ | |
R3_TARGET: "3.1" | |
;-- Host sources | |
R3_HOST_SUBDIR: "win32" | |
;-- Definitions | |
add/definitions {-DTO_WIN32} | |
add/definitions {-DUNICODE} | |
add/definitions {-D_FILE_OFFSET_BITS=64} | |
either MSVC [ | |
;-- Definitions | |
add/definitions {-D_CRT_SECURE_NO_WARNINGS} | |
;-- Compiler/linker flags | |
CMAKE_EXE_LINKER_FLAGS: (CMAKE_EXE_LINKER_FLAGS space "/subsystem:windows") | |
CMAKE_EXE_LINKER_FLAGS: (CMAKE_EXE_LINKER_FLAGS space "/stack:4194300") | |
;-- LIBRARIES | |
R3_LIBS: ["comdlg32.lib" "wsock32.lib"] | |
] [ | |
;-- MinGW-specific settings (@@ Use more specific test.) | |
;-- Compiler/linker flags | |
CMAKE_C_FLAGS: (CMAKE_C_FLAGS space {-O2}) | |
CMAKE_EXE_LINKER_FLAGS: {-Wl,--stack=4194300} | |
;-- Libraries | |
LIBCOMDLG32: find/library "comdlg32" | |
LIBWSOCK32: find/library "wsock32" | |
R3_LIBS: [LIBCOMDLG32 LIBWSOCK32] | |
] | |
] | |
if R3_LINUX [ | |
R3_TARGET: "4.4" | |
; Host sources | |
R3_HOST_SUBDIR: "posix" | |
;-- Definitions | |
add/definitions {-DTO_LINUX} | |
add/definitions {-D_FILE_OFFSET_BITS=64} | |
;-- Compiler/linker flags | |
CMAKE_C_FLAGS: (CMAKE_C_FLAGS space {-m32}) | |
CMAKE_C_FLAGS: (CMAKE_C_FLAGS space {-O2}) | |
CMAKE_C_FLAGS: (CMAKE_C_FLAGS space {-fvisibility=hidden}) | |
;-- Libraries | |
LIBDL: find/library "dl" | |
LIBM: find/library "m" | |
R3_LIBS: [LIBDL LIBM] | |
] | |
add/subdirectory (PROJECT_SOURCE_DIR "/src/os/" R3_HOST_SUBDIR) | |
# -- Generated files | |
R3_SRC_TOOLS_DIR: (PROJECT_SOURCE_DIR "/src/tools") | |
R3_SRCS_CORE: file/glob (PROJECT_SOURCE_DIR "/src/core/*.c") | |
R3_SRCS_MEZZ_BOOT: file/glob [ ;-- Basically mirroring src/mezz/boot-files.r | |
(PROJECT_SOURCE_DIR "/src/mezz/base-*.r") | |
(PROJECT_SOURCE_DIR "/src/mezz/sys-*.r") | |
(PROJECT_SOURCE_DIR "/src/mezz/mezz-*.r") | |
(PROJECT_SOURCE_DIR "/src/mezz/prot-*.r") | |
] | |
add/custom-command [ | |
(R3_MAKE_CMD space [R3_SRC_TOOLS_DIR "/make-boot.r"] space ["0." R3_TARGET]) | |
/OUTPUT | |
(PROJECT_SOURCE_DIR "/src/include/tmp-evaltypes.h") | |
(PROJECT_SOURCE_DIR "/src/include/tmp-maketypes.h") | |
(PROJECT_SOURCE_DIR "/src/include/tmp-comptypes.h") | |
(PROJECT_SOURCE_DIR "/src/include/reb-types.h") | |
(PROJECT_SOURCE_DIR "/src/include/ext-types.h") | |
(PROJECT_SOURCE_DIR "/src/include/tmp-exttypes.h") | |
(PROJECT_SOURCE_DIR "/src/include/tmp-bootdefs.h") | |
(PROJECT_SOURCE_DIR "/src/include/tmp-sysobj.h") | |
(PROJECT_SOURCE_DIR "/src/include/reb-dialect.h") | |
(PROJECT_SOURCE_DIR "/src/include/reb-evtypes.h") | |
(PROJECT_SOURCE_DIR "/src/include/tmp-errnums.h") | |
(PROJECT_SOURCE_DIR "/src/include/tmp-portmodes.h") | |
(PROJECT_SOURCE_DIR "/src/include/tmp-sysctx.h") | |
(PROJECT_SOURCE_DIR "/src/boot/boot-code.r") | |
(PROJECT_SOURCE_DIR "/src/core/b-boot.c") | |
(PROJECT_SOURCE_DIR "/src/include/tmp-boot.h") | |
/DEPENDS | |
(PROJECT_SOURCE_DIR "/src/tools/form-header.r") | |
(PROJECT_SOURCE_DIR "/src/tools/systems.r") | |
(PROJECT_SOURCE_DIR "/src/boot/version.r") | |
(PROJECT_SOURCE_DIR "/src/boot/types.r") | |
(PROJECT_SOURCE_DIR "/src/boot/types-ext.r") | |
(PROJECT_SOURCE_DIR "/src/boot/strings.r") | |
(PROJECT_SOURCE_DIR "/src/boot/words.r") | |
(PROJECT_SOURCE_DIR "/src/boot/modes.r") | |
(PROJECT_SOURCE_DIR "/src/boot/actions.r") | |
(PROJECT_SOURCE_DIR "/src/boot/sysobj.r") | |
(PROJECT_SOURCE_DIR "/src/boot/platforms.r") | |
(PROJECT_SOURCE_DIR "/src/boot/errors.r") | |
(PROJECT_SOURCE_DIR "/src/mezz/boot-files.r") | |
R3_SRCS_MEZZ_BOOT | |
(PROJECT_SOURCE_DIR "/src/boot/booters.r") | |
(PROJECT_SOURCE_DIR "/src/boot/natives.r") | |
(PROJECT_SOURCE_DIR "/src/boot/typespec.r") | |
(PROJECT_SOURCE_DIR "/src/boot/root.r") | |
(PROJECT_SOURCE_DIR "/src/boot/task.r") | |
(PROJECT_SOURCE_DIR "/src/boot/ops.r") | |
) | |
add/custom-command [ | |
(R3_MAKE_CMD space [R3_SRC_TOOLS_DIR "/make-headers.r"]) | |
/OUTPUT | |
(PROJECT_SOURCE_DIR "/src/include/tmp-funcs.h") | |
(PROJECT_SOURCE_DIR "/src/include/tmp-funcargs.h") | |
(PROJECT_SOURCE_DIR "/src/include/tmp-strings.h") | |
/DEPENDS | |
(PROJECT_SOURCE_DIR "/src/tools/form-header.r") | |
R3_SRCS_CORE | |
(PROJECT_SOURCE_DIR "/src/boot/actions.r") | |
(PROJECT_SOURCE_DIR "/src/boot/natives.r") | |
(PROJECT_SOURCE_DIR "/src/core/a-constants.c") | |
] | |
add/custom-command [ | |
(R3_MAKE_CMD space [R3_SRC_TOOLS_DIR "/make-host-ext.r"]) | |
/OUTPUT | |
(PROJECT_SOURCE_DIR "/src/include/host-ext-graphics.h") | |
(PROJECT_SOURCE_DIR "/src/include/host-ext-draw.h") | |
(PROJECT_SOURCE_DIR "/src/include/host-ext-shape.h") | |
(PROJECT_SOURCE_DIR "/src/include/host-ext-text.h") | |
/DEPENDS | |
(PROJECT_SOURCE_DIR "/src/tools/form-header.r") | |
(PROJECT_SOURCE_DIR "/src/boot/graphics.r") | |
(PROJECT_SOURCE_DIR "/src/mezz/view-funcs.r") | |
(PROJECT_SOURCE_DIR "/src/boot/draw.r") | |
(PROJECT_SOURCE_DIR "/src/boot/shape.r") | |
(PROJECT_SOURCE_DIR "/src/boot/text.r") | |
] | |
add/custom-command [ | |
(R3_MAKE_CMD space [R3_SRC_TOOLS_DIR "/make-host-init.r"]) | |
/OUTPUT | |
(PROJECT_SOURCE_DIR "/src/boot/host-init.r") | |
(PROJECT_SOURCE_DIR "/src/include/host-init.h") | |
/DEPENDS | |
(PROJECT_SOURCE_DIR "/src/tools/form-header.r") | |
(PROJECT_SOURCE_DIR "/src/mezz/prot-http.r") | |
] | |
add/custom-command [ | |
(R3_MAKE_CMD space [R3_SRC_TOOLS_DIR "/make-os-ext.r"]) | |
/OUTPUT | |
(PROJECT_SOURCE_DIR "/src/include/host-lib.h") | |
/DEPENDS | |
(PROJECT_SOURCE_DIR "/src/tools/form-header.r") | |
(PROJECT_SOURCE_DIR "/src/boot/version.r") | |
(PROJECT_SOURCE_DIR "/src/tools/systems.r") | |
(PROJECT_SOURCE_DIR "/src/os/host-device.c") | |
(PROJECT_SOURCE_DIR "/src/os/${R3_HOST_SUBDIR}/host-lib.c") | |
(PROJECT_SOURCE_DIR "/src/os/${R3_HOST_SUBDIR}/host-window.c") | |
] | |
add/custom-command [ | |
(R3_MAKE_CMD space [R3_SRC_TOOLS_DIR "/make-reb-lib.r"]) | |
/OUTPUT | |
(PROJECT_SOURCE_DIR "/src/reb-lib-doc.txt") | |
(PROJECT_SOURCE_DIR "/src/include/reb-lib.h") | |
(PROJECT_SOURCE_DIR "/src/include/reb-lib-lib.h") | |
/DEPENDS | |
(PROJECT_SOURCE_DIR "/src/tools/form-header.r") | |
(PROJECT_SOURCE_DIR "/src/boot/version.r") | |
(PROJECT_SOURCE_DIR "/src/core/a-lib.c") | |
(PROJECT_SOURCE_DIR "/src/core/f-extension.c") | |
] | |
prepare: add/custom-target [ | |
/ALL | |
/DEPENDS | |
; -- boot | |
(PROJECT_SOURCE_DIR "/src/include/tmp-evaltypes.h") | |
(PROJECT_SOURCE_DIR "/src/include/tmp-maketypes.h") | |
(PROJECT_SOURCE_DIR "/src/include/tmp-comptypes.h") | |
(PROJECT_SOURCE_DIR "/src/include/reb-types.h") | |
(PROJECT_SOURCE_DIR "/src/include/ext-types.h") | |
(PROJECT_SOURCE_DIR "/src/include/tmp-exttypes.h") | |
(PROJECT_SOURCE_DIR "/src/include/tmp-bootdefs.h") | |
(PROJECT_SOURCE_DIR "/src/include/tmp-sysobj.h") | |
(PROJECT_SOURCE_DIR "/src/include/reb-dialect.h") | |
(PROJECT_SOURCE_DIR "/src/include/reb-evtypes.h") | |
(PROJECT_SOURCE_DIR "/src/include/tmp-errnums.h") | |
(PROJECT_SOURCE_DIR "/src/include/tmp-portmodes.h") | |
(PROJECT_SOURCE_DIR "/src/include/tmp-sysctx.h") | |
;(PROJECT_SOURCE_DIR "/src/boot/boot-code.r") ; unused | |
(PROJECT_SOURCE_DIR "/src/core/b-boot.c") | |
(PROJECT_SOURCE_DIR "/src/include/tmp-boot.h") | |
;-- headers | |
(PROJECT_SOURCE_DIR "/src/include/tmp-funcs.h") | |
(PROJECT_SOURCE_DIR "/src/include/tmp-funcargs.h") | |
(PROJECT_SOURCE_DIR "/src/include/tmp-strings.h") | |
;-- host-ext | |
(PROJECT_SOURCE_DIR "/src/include/host-ext-graphics.h") | |
(PROJECT_SOURCE_DIR "/src/include/host-ext-draw.h") | |
(PROJECT_SOURCE_DIR "/src/include/host-ext-shape.h") | |
(PROJECT_SOURCE_DIR "/src/include/host-ext-text.h") | |
; -- host-init | |
;(PROJECT_SOURCE_DIR "/src/boot/host-init.r") ;--unused | |
(PROJECT_SOURCE_DIR "/src/include/host-init.h") | |
; -- os-ext | |
(PROJECT_SOURCE_DIR "/src/include/host-lib.h") | |
# -- reb-lib | |
(PROJECT_SOURCE_DIR "/src/reb-lib-doc.txt") | |
(PROJECT_SOURCE_DIR "/src/include/reb-lib.h") | |
(PROJECT_SOURCE_DIR "/src/include/reb-lib-lib.h) | |
] | |
;-- Build targets | |
;-- Until construction syntax allows arbitrary words, we'll need to add an | |
;-- option for filenames... | |
r3: add/executable [ | |
R3_SRCS | |
;/FILENAME "3r" ;-- for example | |
] | |
target/link-libraries 'r3 R3_LIBS | |
;-- Additional platform-specific configuration | |
if MSVC [ | |
; Add target-level dependency from `r3` to `prepare`, as VS (and/or CMake's | |
; VS generator) can't handle file-level cross-target dependencies properly. | |
add/dependencies 'r3 [prepare] | |
] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
cmake_minimum_required(VERSION 2.8) | |
project(rebol3) | |
# -- Target platform detection | |
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") | |
set(R3_OSX on) | |
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Windows") | |
set(R3_WIN32 on) | |
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux") | |
set(R3_LINUX on) | |
endif() | |
# -- Common R3 build configuration | |
add_definitions(-DREB_CORE) | |
add_definitions(-DREB_EXE) | |
include_directories(${PROJECT_SOURCE_DIR}/src/include) | |
add_subdirectory(${PROJECT_SOURCE_DIR}/src/core) | |
add_subdirectory(${PROJECT_SOURCE_DIR}/src/os) | |
# Rebol 3 command used for bootstrap (in the "prepare" target). | |
find_program(R3_MAKE r3-make) | |
set(R3_MAKE_CMD ${R3_MAKE} -qs) | |
# -- Platform-specific configuration | |
if(R3_OSX) | |
set(R3_TARGET "2.5") | |
# Host sources | |
set(R3_HOST_SUBDIR "posix") | |
# Definitions | |
add_definitions(-DTO_OSXI) | |
add_definitions(-D_FILE_OFFSET_BITS=64) | |
# Compiler/linker flags | |
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -arch i386") | |
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-pointer-sign") | |
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC") | |
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden") | |
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-common") | |
# Libraries | |
find_library(LIBM m) | |
set(R3_LIBS ${LIBM}) | |
endif() | |
if(R3_WIN32) | |
set(R3_TARGET "3.1") | |
# Host sources | |
set(R3_HOST_SUBDIR "win32") | |
# Definitions | |
add_definitions(-DTO_WIN32) | |
add_definitions(-DUNICODE) | |
add_definitions(-D_FILE_OFFSET_BITS=64) | |
if(NOT MSVC) # MinGW-specific settings (@@ Use more specific test.) | |
# Compiler/linker flags | |
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2") | |
set(CMAKE_EXE_LINKER_FLAGS "-Wl,--stack=4194300") | |
# Libraries | |
find_library(LIBCOMDLG32 comdlg32) | |
find_library(LIBWSOCK32 wsock32) | |
set(R3_LIBS ${LIBCOMDLG32} ${LIBWSOCK32}) | |
elseif(MSVC) # MSVC-specific settings | |
# Definitions | |
add_definitions(-D_CRT_SECURE_NO_WARNINGS) | |
# Compiler/linker flags | |
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /subsystem:windows") | |
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /stack:4194300") | |
# LIBRARIES | |
set(R3_LIBS comdlg32.lib wsock32.lib) | |
endif() | |
endif() | |
if(R3_LINUX) | |
set(R3_TARGET "4.4") | |
# Host sources | |
set(R3_HOST_SUBDIR "posix") | |
# Definitions | |
add_definitions(-DTO_LINUX) | |
add_definitions(-D_FILE_OFFSET_BITS=64) | |
# Compiler/linker flags | |
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32") | |
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2") | |
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden") | |
# Libraries | |
find_library(LIBDL dl) | |
find_library(LIBM m) | |
set(R3_LIBS ${LIBDL} ${LIBM}) | |
endif() | |
add_subdirectory(${PROJECT_SOURCE_DIR}/src/os/${R3_HOST_SUBDIR}) | |
# -- Generated files | |
set(R3_SRC_TOOLS_DIR ${PROJECT_SOURCE_DIR}/src/tools) | |
file(GLOB R3_SRCS_CORE "${PROJECT_SOURCE_DIR}/src/core/*.c") | |
file(GLOB R3_SRCS_MEZZ_BOOT # Basically mirroring src/mezz/boot-files.r | |
"${PROJECT_SOURCE_DIR}/src/mezz/base-*.r" | |
"${PROJECT_SOURCE_DIR}/src/mezz/sys-*.r" | |
"${PROJECT_SOURCE_DIR}/src/mezz/mezz-*.r" | |
"${PROJECT_SOURCE_DIR}/src/mezz/prot-*.r" | |
) | |
add_custom_command( | |
COMMAND ${R3_MAKE_CMD} ${R3_SRC_TOOLS_DIR}/make-boot.r 0.${R3_TARGET} | |
OUTPUT | |
${PROJECT_SOURCE_DIR}/src/include/tmp-evaltypes.h | |
${PROJECT_SOURCE_DIR}/src/include/tmp-maketypes.h | |
${PROJECT_SOURCE_DIR}/src/include/tmp-comptypes.h | |
${PROJECT_SOURCE_DIR}/src/include/reb-types.h | |
${PROJECT_SOURCE_DIR}/src/include/ext-types.h | |
${PROJECT_SOURCE_DIR}/src/include/tmp-exttypes.h | |
${PROJECT_SOURCE_DIR}/src/include/tmp-bootdefs.h | |
${PROJECT_SOURCE_DIR}/src/include/tmp-sysobj.h | |
${PROJECT_SOURCE_DIR}/src/include/reb-dialect.h | |
${PROJECT_SOURCE_DIR}/src/include/reb-evtypes.h | |
${PROJECT_SOURCE_DIR}/src/include/tmp-errnums.h | |
${PROJECT_SOURCE_DIR}/src/include/tmp-portmodes.h | |
${PROJECT_SOURCE_DIR}/src/include/tmp-sysctx.h | |
${PROJECT_SOURCE_DIR}/src/boot/boot-code.r | |
${PROJECT_SOURCE_DIR}/src/core/b-boot.c | |
${PROJECT_SOURCE_DIR}/src/include/tmp-boot.h | |
DEPENDS | |
${PROJECT_SOURCE_DIR}/src/tools/form-header.r | |
${PROJECT_SOURCE_DIR}/src/tools/systems.r | |
${PROJECT_SOURCE_DIR}/src/boot/version.r | |
${PROJECT_SOURCE_DIR}/src/boot/types.r | |
${PROJECT_SOURCE_DIR}/src/boot/types-ext.r | |
${PROJECT_SOURCE_DIR}/src/boot/strings.r | |
${PROJECT_SOURCE_DIR}/src/boot/words.r | |
${PROJECT_SOURCE_DIR}/src/boot/modes.r | |
${PROJECT_SOURCE_DIR}/src/boot/actions.r | |
${PROJECT_SOURCE_DIR}/src/boot/sysobj.r | |
${PROJECT_SOURCE_DIR}/src/boot/platforms.r | |
${PROJECT_SOURCE_DIR}/src/boot/errors.r | |
${PROJECT_SOURCE_DIR}/src/mezz/boot-files.r | |
${R3_SRCS_MEZZ_BOOT} | |
${PROJECT_SOURCE_DIR}/src/boot/booters.r | |
${PROJECT_SOURCE_DIR}/src/boot/natives.r | |
${PROJECT_SOURCE_DIR}/src/boot/typespec.r | |
${PROJECT_SOURCE_DIR}/src/boot/root.r | |
${PROJECT_SOURCE_DIR}/src/boot/task.r | |
${PROJECT_SOURCE_DIR}/src/boot/ops.r | |
) | |
add_custom_command( | |
COMMAND ${R3_MAKE_CMD} ${R3_SRC_TOOLS_DIR}/make-headers.r | |
OUTPUT | |
${PROJECT_SOURCE_DIR}/src/include/tmp-funcs.h | |
${PROJECT_SOURCE_DIR}/src/include/tmp-funcargs.h | |
${PROJECT_SOURCE_DIR}/src/include/tmp-strings.h | |
DEPENDS | |
${PROJECT_SOURCE_DIR}/src/tools/form-header.r | |
${R3_SRCS_CORE} | |
${PROJECT_SOURCE_DIR}/src/boot/actions.r | |
${PROJECT_SOURCE_DIR}/src/boot/natives.r | |
${PROJECT_SOURCE_DIR}/src/core/a-constants.c | |
) | |
add_custom_command( | |
COMMAND ${R3_MAKE_CMD} ${R3_SRC_TOOLS_DIR}/make-host-ext.r | |
OUTPUT | |
${PROJECT_SOURCE_DIR}/src/include/host-ext-graphics.h | |
${PROJECT_SOURCE_DIR}/src/include/host-ext-draw.h | |
${PROJECT_SOURCE_DIR}/src/include/host-ext-shape.h | |
${PROJECT_SOURCE_DIR}/src/include/host-ext-text.h | |
DEPENDS | |
${PROJECT_SOURCE_DIR}/src/tools/form-header.r | |
${PROJECT_SOURCE_DIR}/src/boot/graphics.r | |
${PROJECT_SOURCE_DIR}/src/mezz/view-funcs.r | |
${PROJECT_SOURCE_DIR}/src/boot/draw.r | |
${PROJECT_SOURCE_DIR}/src/boot/shape.r | |
${PROJECT_SOURCE_DIR}/src/boot/text.r | |
) | |
add_custom_command( | |
COMMAND ${R3_MAKE_CMD} ${R3_SRC_TOOLS_DIR}/make-host-init.r | |
OUTPUT | |
${PROJECT_SOURCE_DIR}/src/boot/host-init.r | |
${PROJECT_SOURCE_DIR}/src/include/host-init.h | |
DEPENDS | |
${PROJECT_SOURCE_DIR}/src/tools/form-header.r | |
${PROJECT_SOURCE_DIR}/src/mezz/prot-http.r | |
) | |
add_custom_command( | |
COMMAND ${R3_MAKE_CMD} ${R3_SRC_TOOLS_DIR}/make-os-ext.r | |
OUTPUT | |
${PROJECT_SOURCE_DIR}/src/include/host-lib.h | |
DEPENDS | |
${PROJECT_SOURCE_DIR}/src/tools/form-header.r | |
${PROJECT_SOURCE_DIR}/src/boot/version.r | |
${PROJECT_SOURCE_DIR}/src/tools/systems.r | |
${PROJECT_SOURCE_DIR}/src/os/host-device.c | |
${PROJECT_SOURCE_DIR}/src/os/${R3_HOST_SUBDIR}/host-lib.c | |
${PROJECT_SOURCE_DIR}/src/os/${R3_HOST_SUBDIR}/host-window.c | |
) | |
add_custom_command( | |
COMMAND ${R3_MAKE_CMD} ${R3_SRC_TOOLS_DIR}/make-reb-lib.r | |
OUTPUT | |
${PROJECT_SOURCE_DIR}/src/reb-lib-doc.txt | |
${PROJECT_SOURCE_DIR}/src/include/reb-lib.h | |
${PROJECT_SOURCE_DIR}/src/include/reb-lib-lib.h | |
DEPENDS | |
${PROJECT_SOURCE_DIR}/src/tools/form-header.r | |
${PROJECT_SOURCE_DIR}/src/boot/version.r | |
${PROJECT_SOURCE_DIR}/src/core/a-lib.c | |
${PROJECT_SOURCE_DIR}/src/core/f-extension.c | |
) | |
add_custom_target(prepare ALL | |
DEPENDS | |
# -- boot | |
${PROJECT_SOURCE_DIR}/src/include/tmp-evaltypes.h | |
${PROJECT_SOURCE_DIR}/src/include/tmp-maketypes.h | |
${PROJECT_SOURCE_DIR}/src/include/tmp-comptypes.h | |
${PROJECT_SOURCE_DIR}/src/include/reb-types.h | |
${PROJECT_SOURCE_DIR}/src/include/ext-types.h | |
${PROJECT_SOURCE_DIR}/src/include/tmp-exttypes.h | |
${PROJECT_SOURCE_DIR}/src/include/tmp-bootdefs.h | |
${PROJECT_SOURCE_DIR}/src/include/tmp-sysobj.h | |
${PROJECT_SOURCE_DIR}/src/include/reb-dialect.h | |
${PROJECT_SOURCE_DIR}/src/include/reb-evtypes.h | |
${PROJECT_SOURCE_DIR}/src/include/tmp-errnums.h | |
${PROJECT_SOURCE_DIR}/src/include/tmp-portmodes.h | |
${PROJECT_SOURCE_DIR}/src/include/tmp-sysctx.h | |
#${PROJECT_SOURCE_DIR}/src/boot/boot-code.r # unused | |
${PROJECT_SOURCE_DIR}/src/core/b-boot.c | |
${PROJECT_SOURCE_DIR}/src/include/tmp-boot.h | |
# -- headers | |
${PROJECT_SOURCE_DIR}/src/include/tmp-funcs.h | |
${PROJECT_SOURCE_DIR}/src/include/tmp-funcargs.h | |
${PROJECT_SOURCE_DIR}/src/include/tmp-strings.h | |
# -- host-ext | |
${PROJECT_SOURCE_DIR}/src/include/host-ext-graphics.h | |
${PROJECT_SOURCE_DIR}/src/include/host-ext-draw.h | |
${PROJECT_SOURCE_DIR}/src/include/host-ext-shape.h | |
${PROJECT_SOURCE_DIR}/src/include/host-ext-text.h | |
# -- host-init | |
#${PROJECT_SOURCE_DIR}/src/boot/host-init.r # unused | |
${PROJECT_SOURCE_DIR}/src/include/host-init.h | |
# -- os-ext | |
${PROJECT_SOURCE_DIR}/src/include/host-lib.h | |
# -- reb-lib | |
${PROJECT_SOURCE_DIR}/src/reb-lib-doc.txt | |
${PROJECT_SOURCE_DIR}/src/include/reb-lib.h | |
${PROJECT_SOURCE_DIR}/src/include/reb-lib-lib.h | |
) | |
# -- Build targets | |
add_executable(r3 ${R3_SRCS}) | |
target_link_libraries(r3 ${R3_LIBS}) | |
# -- Additional platform-specific configuration | |
if(MSVC) | |
# Add target-level dependency from `r3` to `prepare`, as VS (and/or CMake's | |
# VS generator) can't handle file-level cross-target dependencies properly. | |
add_dependencies(r3 prepare) | |
endif() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment