Last active
August 29, 2015 14:07
-
-
Save hostilefork/c086c1549cfccae7fc92 to your computer and use it in GitHub Desktop.
Revisions
-
hostilefork revised this gist
Jul 11, 2015 . 1 changed file with 3 additions and 3 deletions.There are no files selected for viewing
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 charactersOriginal file line number Diff line number Diff line change @@ -101,14 +101,14 @@ if R3_WIN32 [ 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.) -
hostilefork renamed this gist
Jul 11, 2015 . 1 changed file with 0 additions and 0 deletions.There are no files selected for viewing
File renamed without changes. -
hostilefork revised this gist
Oct 3, 2014 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
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 charactersOriginal file line number Diff line number Diff line change @@ -89,7 +89,7 @@ if R3_OSX [ ] if R3_WIN32 [ R3_TARGET: "3.1" ;-- Host sources -
hostilefork revised this gist
Oct 3, 2014 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
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 charactersOriginal file line number Diff line number Diff line change @@ -109,7 +109,7 @@ if R3_WIN32 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 -
hostilefork revised this gist
Oct 3, 2014 . 1 changed file with 311 additions and 245 deletions.There are no files selected for viewing
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 charactersOriginal file line number Diff line number Diff line change @@ -1,266 +1,332 @@ 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] ] -
hostilefork revised this gist
Oct 2, 2014 . 2 changed files with 0 additions and 0 deletions.There are no files selected for viewing
File renamed without changes.File renamed without changes. -
hostilefork revised this gist
Oct 2, 2014 . 1 changed file with 266 additions and 0 deletions.There are no files selected for viewing
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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,266 @@ 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() -
hostilefork created this gist
Oct 2, 2014 .There are no files selected for viewing
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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,266 @@ 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()