set( CMAKE_USE_RELATIVE_PATHS 1 )
+#| Prevent In-Source Builds
+set( CMAKE_DISABLE_SOURCE_CHANGES ON )
+set( CMAKE_DISABLE_IN_SOURCE_BUILD ON )
+
###
# Compiler Lookup
message( STATUS "Compiler Family:" )
message( "${COMPILER_FAMILY}" )
+#| Compiler Selection Record
+#| This is used to check if the chip target has changed (a complete cmake reset is needed)
+if ( EXISTS compiler )
+ file( READ ${CMAKE_BINARY_DIR}/compiler COMPILER_RECORD )
+
+ # Detect case if a full cmake reset is required
+ if ( NOT COMPILER_FAMILY STREQUAL COMPILER_RECORD )
+ message( FATAL_ERROR "Changing compilers requires a cmake reset\ne.g. rm -rf *; cmake .." )
+ endif()
+endif ()
+
#| Load the compiler family specific configurations
-include( Lib/CMake/${COMPILER_FAMILY}.cmake )
+include( ${COMPILER_FAMILY} )
#| Binutils not set by CMake
set( CMAKE_SIZE "${_CMAKE_TOOLCHAIN_PREFIX}size" )