set(CMAKE_SYSTEM_NAME Generic) set(CMAKE_SYSTEM_VERSION 1) set(NUTTX 1) set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) set(NUTTX_PATH "${CMAKE_CURRENT_LIST_DIR}/..") get_filename_component(NUTTX_PATH "${NUTTX_PATH}" ABSOLUTE) include(${NUTTX_PATH}/scripts/target.cmake) # LDNAME may list several space-separated linker scripts. Prefix each one. separate_arguments(_ldname_list UNIX_COMMAND "${LDNAME}") set(_ldscripts) foreach(_ld IN LISTS _ldname_list) list(APPEND _ldscripts "-T${NUTTX_PATH}/scripts/${_ld}") endforeach() string(REPLACE ";" " " LINKER_SCRIPT "${_ldscripts}") set(CMAKE_C_FLAGS "${ARCHCPUFLAGS} ${ARCHCFLAGS} -D__NuttX__") set(CMAKE_CXX_FLAGS "${ARCHCPUFLAGS} ${ARCHCXXFLAGS} -D__NuttX__") set(CMAKE_C_STANDARD_INCLUDE_DIRECTORIES ${NUTTX_PATH}/include ${NUTTX_PATH}/arch/chip) set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES ${NUTTX_PATH}/include/${NUTTX_CXX} ${NUTTX_PATH}/include ${NUTTX_PATH}/arch/chip) add_compile_options(-nostdlib) add_compile_options(-ffunction-sections -fdata-sections) # same entry used for all build modes in crt0.c set(ENTRY_NAME "_start") set(CMAKE_C_LINK_EXECUTABLE " ${LDFLAGS} --entry=${ENTRY_NAME} ${LINKER_SCRIPT} -o -L${NUTTX_PATH}/libs --start-group ${LDLIBS} ${EXTRA_LIBS} --end-group" ) set(CMAKE_CXX_LINK_EXECUTABLE " ${LDFLAGS} --entry=${ENTRY_NAME} ${LINKER_SCRIPT} -o -L${NUTTX_PATH}/libs --start-group ${LDLIBS} ${EXTRA_LIBS} --end-group" ) set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)