function(pre_source_hw_os_config)

# FreeRTOS
if(FSFW_OSAL MATCHES freertos)
	message(FATAL_ERROR "No FreeRTOS support implemented yet.")
# RTEMS
elseif(FSFW_OSAL STREQUAL rtems)
	add_definitions(-DRTEMS)
	message(FATAL_ERROR "No RTEMS support implemented yet.")
elseif(FSFW_OSAL STREQUAL linux)
	add_definitions(-DUNIX -DLINUX)	
	find_package(Threads REQUIRED)
# Hosted
else()
	set(BSP_PATH "bsp_hosted")
	if(WIN32)
    	add_definitions(-DWIN32)
	elseif(UNIX)
		find_package(Threads REQUIRED)
		add_definitions(-DUNIX -DLINUX)	
	endif()
endif()

# Cross-compile information
if(CMAKE_CROSSCOMPILING)
	# set(CMAKE_VERBOSE TRUE)

	message(STATUS "Cross-compiling for ${TGT_BSP} target")
	message(STATUS "Cross-compile gcc: ${CMAKE_C_COMPILER}")
	message(STATUS "Cross-compile g++: ${CMAKE_CXX_COMPILER}")
	
	if(CMAKE_VERBOSE)
		message(STATUS "Cross-compile linker: ${CMAKE_LINKER}")
		message(STATUS "Cross-compile size utility: ${CMAKE_SIZE}")
		message(STATUS "Cross-compile objcopy utility: ${CMAKE_OBJCOPY}")
		message(STATUS "Cross-compile ranlib utility: ${CMAKE_RANLIB}")
		message(STATUS "Cross-compile ar utility: ${CMAKE_AR}")
		message(STATUS "Cross-compile nm utility: ${CMAKE_NM}")
		message(STATUS "Cross-compile strip utility: ${CMAKE_STRIP}")
		message(STATUS 
			"Cross-compile assembler: ${CMAKE_ASM_COMPILER} "
			"-x assembler-with-cpp"
		)
		message(STATUS "ABI flags: ${ABI_FLAGS}")
		message(STATUS "Custom linker script: ${LINKER_SCRIPT}")
	endif()
	
	set_property(CACHE TGT_BSP 
		PROPERTY STRINGS  
		"arm/q7s" "arm/raspberrypi" "arm/egse"
	)
endif()
	

if(TGT_BSP)
	if (TGT_BSP MATCHES "arm/raspberrypi" OR TGT_BSP MATCHES "arm/beagleboneblack")
		set(BSP_PATH "bsp_linux_board")
	elseif(TGT_BSP MATCHES "arm/q7s")
		set(BSP_PATH "bsp_q7s")
  elseif(TGT_BSP MATCHES "arm/egse")
    set(BSP_PATH "bsp_egse")
	else() 
		message(WARNING "CMake not configured for this target!")
		message(FATAL_ERROR "Target: ${TGT_BSP}!")
	endif()
else()
	set(BSP_PATH "bsp_hosted")
endif()
		
set(BSP_PATH ${BSP_PATH} PARENT_SCOPE)

endfunction()