diff --git a/runtime/CMakeLists.txt b/runtime/CMakeLists.txt index c0f904181414e24133f9e0c31dadc3be7c57104b..36983fa0b566f199fc2d04cce0c8c9c5681f11f9 100644 --- a/runtime/CMakeLists.txt +++ b/runtime/CMakeLists.txt @@ -64,55 +64,7 @@ add_custom_command( VERBATIM COMMAND cmake -E copy_if_different ${divine_SOURCE_DIR}/divine/vm/divm.h ${H_DIVM} ) -list( APPEND flags -Oz ) -list( APPEND flags -g ) -list( APPEND flags -D__divine__ ) -list( APPEND flags -D_POSIX_C_SOURCE=2008098L ) -list( APPEND flags -D_LITTLE_ENDIAN=1234 ) -list( APPEND flags -D_BYTE_ORDER=1234 ) - -list( APPEND flags -isystem${CMAKE_CURRENT_SOURCE_DIR}/ ) # dios -list( APPEND flags -isystem${CMAKE_CURRENT_SOURCE_DIR}/libc/include ) -list( APPEND flags -isystem${CMAKE_CURRENT_BINARY_DIR}/libc/include ) -list( APPEND flags -isystem${CMAKE_CURRENT_SOURCE_DIR}/libc/internals ) -list( APPEND flags -isystem${CMAKE_CURRENT_SOURCE_DIR}/libm/include ) -list( APPEND flags -isystem${CMAKE_CURRENT_SOURCE_DIR}/libm/src/ld80 ) - -mkobjs( libc "${flags};-D_PDCLIB_BUILD" ) -mkobjs( libc_cpp "${flags};-D_PDCLIB_BUILD;-std=c++14;-I${CMAKE_CURRENT_BINARY_DIR}" ) -mkobjs( libm "${flags}" ) - -list( APPEND flags -std=c++14 ) -list( INSERT flags 0 -isystem${CMAKE_CURRENT_SOURCE_DIR}/libcxx/include - -isystem${CMAKE_CURRENT_SOURCE_DIR}/libcxxabi/include - -isystem${CMAKE_CURRENT_SOURCE_DIR}/libcxxabi/src ) - -mkobjs( libcxxabi "${flags};-DLIBCXXABI_USE_LLVM_UNWINDER" ) -mkobjs( libcxx "${flags};-D_LIBCPP_BUILDING_LIBRARY;-DLIBCXX_BUILDING_LIBCXXABI" ) - -list( APPEND flags -isystem${divine_SOURCE_DIR}/bricks) -list( APPEND flags -I${CMAKE_CURRENT_SOURCE_DIR}/filesystem -I${CMAKE_CURRENT_BINARY_DIR} - -Wall -Wextra -Wold-style-cast -Werror) -mkobjs( libdios "${flags};-D__dios_kernel__" ) -mkobjs( libabstract "${flags}" ) - -mklib( libc libc_cpp ) -mklib( libm ) -mklib( libcxxabi ) -mklib( libcxx) -mklib( libdios ) -mklib( libabstract ) - -foreach( f ${H_RUNTIME} ) - stringify( "runtime" "." ${f} ) -endforeach() - -set( OPS_src "${CMAKE_SOURCE_DIR}/llvm/include/llvm/IR/Instruction.def" ) -set( OPS_dest "divine/Instruction.def" ) -file( COPY ${OPS_src} DESTINATION "divine" ) -stringify( "runtime" ${CMAKE_CURRENT_BINARY_DIR} ${OPS_dest} ) -stringify( "runtime" ${CMAKE_CURRENT_BINARY_DIR} libc/include/sys/divm.h ) -stringlist( "runtime" runtime ) +include( compile-rt.flags ) include_directories( ${divine_SOURCE_DIR} ) add_definitions( -Wno-overlength-strings ${DIVINE_DEFINES} ) diff --git a/runtime/compile-rt.flags b/runtime/compile-rt.flags new file mode 100644 index 0000000000000000000000000000000000000000..429b53d5d1a640e36b08b2c2283db07e397c61b3 --- /dev/null +++ b/runtime/compile-rt.flags @@ -0,0 +1,51 @@ +list( APPEND flags -Oz ) +list( APPEND flags -g ) +list( APPEND flags -D__divine__ ) +list( APPEND flags -D_POSIX_C_SOURCE=2008098L ) +list( APPEND flags -D_LITTLE_ENDIAN=1234 ) +list( APPEND flags -D_BYTE_ORDER=1234 ) + +list( APPEND flags -isystem${CMAKE_CURRENT_SOURCE_DIR}/ ) # dios +list( APPEND flags -isystem${CMAKE_CURRENT_SOURCE_DIR}/libc/include ) +list( APPEND flags -isystem${CMAKE_CURRENT_BINARY_DIR}/libc/include ) +list( APPEND flags -isystem${CMAKE_CURRENT_SOURCE_DIR}/libc/internals ) +list( APPEND flags -isystem${CMAKE_CURRENT_SOURCE_DIR}/libm/include ) +list( APPEND flags -isystem${CMAKE_CURRENT_SOURCE_DIR}/libm/src/ld80 ) + +mkobjs( libc "${flags};-D_PDCLIB_BUILD" ) +mkobjs( libc_cpp "${flags};-D_PDCLIB_BUILD;-std=c++14;-I${CMAKE_CURRENT_BINARY_DIR}" ) +mkobjs( libm "${flags}" ) + +list( APPEND flags -std=c++14 ) +list( INSERT flags 0 -isystem${CMAKE_CURRENT_SOURCE_DIR}/libcxx/include + -isystem${CMAKE_CURRENT_SOURCE_DIR}/libcxxabi/include + -isystem${CMAKE_CURRENT_SOURCE_DIR}/libcxxabi/src ) + +mkobjs( libcxxabi "${flags};-DLIBCXXABI_USE_LLVM_UNWINDER" ) +mkobjs( libcxx "${flags};-D_LIBCPP_BUILDING_LIBRARY;-DLIBCXX_BUILDING_LIBCXXABI" ) + +list( APPEND flags -isystem${divine_SOURCE_DIR}/bricks) +list( APPEND flags -I${CMAKE_CURRENT_SOURCE_DIR}/filesystem -I${CMAKE_CURRENT_BINARY_DIR} + -Wall -Wextra -Wold-style-cast -Werror) +mkobjs( libdios "${flags};-D__dios_kernel__" ) +mkobjs( libabstract "${flags}" ) + +mklib( libc libc_cpp ) +mklib( libm ) +mklib( libcxxabi ) +mklib( libcxx) +mklib( libdios ) +mklib( libabstract ) + +foreach( f ${H_RUNTIME} ) + stringify( "runtime" "." ${f} ) +endforeach() + +set( OPS_src "${CMAKE_SOURCE_DIR}/llvm/include/llvm/IR/Instruction.def" ) +set( OPS_dest "divine/Instruction.def" ) +file( COPY ${OPS_src} DESTINATION "divine" ) +stringify( "runtime" ${CMAKE_CURRENT_BINARY_DIR} ${OPS_dest} ) +stringify( "runtime" ${CMAKE_CURRENT_BINARY_DIR} libc/include/sys/divm.h ) +stringlist( "runtime" runtime ) + +# vim: ft=cmake