include_directories($ENV{__GeneratedIntermediatesDir}/inc) include_directories("inc") include_directories("strongname/inc") include_directories("inc/winrt") include_directories("debug/inc") if(CLR_CMAKE_PLATFORM_ARCH_AMD64) include_directories("debug/inc/amd64") elseif(CLR_CMAKE_PLATFORM_ARCH_I386) include_directories("debug/inc/i386") elseif(CLR_CMAKE_PLATFORM_ARCH_ARM) include_directories("debug/inc/arm") elseif(CLR_CMAKE_PLATFORM_ARCH_ARM64) include_directories("debug/inc/arm64") else() clr_unknown_arch() endif() include_directories("debug/inc/dump") include_directories("md/inc") include_directories("classlibnative/bcltype") include_directories("classlibnative/cryptography") include_directories("classlibnative/inc") if(CLR_CMAKE_PLATFORM_UNIX) add_subdirectory(ToolBox/SOS/Strike) # Include the dummy c++ include files include_directories("pal/inc/rt/cpp") # This prevents inclusion of standard C compiler headers add_compile_options(-nostdinc) if(NOT CLR_CMAKE_PLATFORM_DARWIN) # This prevents inclusion of standard C++ compiler headers set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -nostdinc++") endif(NOT CLR_CMAKE_PLATFORM_DARWIN) set (NATIVE_RESOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/nativeresources) include_directories(${NATIVE_RESOURCE_DIR}) set (RC_TO_CPP ${NATIVE_RESOURCE_DIR}/rctocpp.awk) set (PROCESS_RC ${NATIVE_RESOURCE_DIR}/processrc.awk) set (RESOURCE_STRING_HEADER_DIR ${NATIVE_RESOURCE_DIR}) # Create a command to create a C++ source file containing an array of # NativeStringResource structs which represent the information from a # given Windows .rc file. The target C++ file path is returned in the # variable specified by the TARGET_FILE parameter. function(build_resources SOURCE TARGET_NAME TARGET_FILE) get_compile_definitions(PREPROCESS_DEFINITIONS) get_include_directories(INCLUDE_DIRECTORIES) set(PREPROCESSED_SOURCE ${CMAKE_CURRENT_BINARY_DIR}/${TARGET_NAME}.rc.i) set(RESOURCE_ENTRY_ARRAY_CPP ${CMAKE_CURRENT_BINARY_DIR}/${TARGET_NAME}.cpp) add_custom_command( OUTPUT ${RESOURCE_ENTRY_ARRAY_CPP} # Preprocess the windows .rc file COMMAND ${CMAKE_CXX_COMPILER} -E -P ${PREPROCESS_DEFINITIONS} ${INCLUDE_DIRECTORIES} -o ${PREPROCESSED_SOURCE} -x c ${SOURCE} # Convert the preprocessed .rc file to a C++ file which will be used to make a static lib. COMMAND ${AWK} -v name=${TARGET_NAME} -f ${RC_TO_CPP} -f ${PROCESS_RC} ${PREPROCESSED_SOURCE} >${RESOURCE_ENTRY_ARRAY_CPP} DEPENDS ${SOURCE} ${RC_TO_CPP} ${PROCESS_RC} ) include_directories(${RESOURCE_STRING_HEADER_DIR}) set(${TARGET_FILE} ${RESOURCE_ENTRY_ARRAY_CPP} PARENT_SCOPE) endfunction() add_subdirectory(nativeresources) endif(CLR_CMAKE_PLATFORM_UNIX) add_subdirectory(utilcode) add_subdirectory(gcinfo) add_subdirectory(coreclr) add_subdirectory(jit) add_subdirectory(vm) add_subdirectory(md) add_subdirectory(debug) add_subdirectory(inc) add_subdirectory(strongname) add_subdirectory(binder) add_subdirectory(classlibnative) add_subdirectory(dlls) add_subdirectory(ToolBox) add_subdirectory(tools) add_subdirectory(unwinder) add_subdirectory(ildasm) add_subdirectory(ilasm) if(WIN32) add_subdirectory(ipcman) endif(WIN32) if(CLR_CMAKE_PLATFORM_UNIX) add_subdirectory(palrt) endif(CLR_CMAKE_PLATFORM_UNIX)