Fix circular dependency in CMake project (#700)

* Fix circular dependency in cmake project

Fix for https://github.com/FreeRTOS/FreeRTOS-Kernel/issues/687
In order for custom ports to also break the cycle, they must link
against freertos_kernel_include instead of freertos_kernel.

* Simplify include path
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 46a9e18..a68b652 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -225,7 +225,7 @@
     "      .)\n"
     "   target_link_libraries(freertos_kernel_port\n"
     "     PRIVATE\n"
-    "       freertos_kernel)")
+    "       freertos_kernel_include)")
 endif()
 
 ########################################################################
@@ -264,6 +264,7 @@
 
 
 ########################################################################
+add_subdirectory(include)
 add_subdirectory(portable)
 
 add_library(freertos_kernel STATIC
@@ -279,17 +280,10 @@
     $<IF:$<BOOL:$<FILTER:${FREERTOS_HEAP},EXCLUDE,^[1-5]$>>,${FREERTOS_HEAP},portable/MemMang/heap_${FREERTOS_HEAP}.c>
 )
 
-target_include_directories(freertos_kernel
-    PUBLIC
-        include
-        # Note: DEPRECATED but still supported, may be removed in a future release.
-        $<$<NOT:$<TARGET_EXISTS:freertos_config>>:${FREERTOS_CONFIG_FILE_DIRECTORY}>
-)
-
 target_link_libraries(freertos_kernel
     PUBLIC
-        $<$<TARGET_EXISTS:freertos_config>:freertos_config>
         freertos_kernel_port
+        freertos_kernel_include
 )
 
 ########################################################################
diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
new file mode 100644
index 0000000..46a1c3e
--- /dev/null
+++ b/include/CMakeLists.txt
@@ -0,0 +1,15 @@
+# FreeRTOS internal cmake file. Do not use it in user top-level project
+
+add_library(freertos_kernel_include INTERFACE)
+
+target_include_directories(freertos_kernel_include
+    INTERFACE
+        .
+        # Note: DEPRECATED but still supported, may be removed in a future release.
+        $<$<NOT:$<TARGET_EXISTS:freertos_config>>:${FREERTOS_CONFIG_FILE_DIRECTORY}>
+)
+
+target_link_libraries(freertos_kernel_include
+    INTERFACE
+        $<$<TARGET_EXISTS:freertos_config>:freertos_config>
+)
diff --git a/portable/CMakeLists.txt b/portable/CMakeLists.txt
index 2824df0..988be15 100644
--- a/portable/CMakeLists.txt
+++ b/portable/CMakeLists.txt
@@ -1035,7 +1035,7 @@
         $<$<STREQUAL:${FREERTOS_PORT},GCC_RP2040>:pico_base_headers>
         $<$<STREQUAL:${FREERTOS_PORT},GCC_XTENSA_ESP32>:idf::esp32>
     PRIVATE
-        freertos_kernel
+        freertos_kernel_include
         $<$<STREQUAL:${FREERTOS_PORT},GCC_POSIX>:Threads::Threads>
         "$<$<STREQUAL:${FREERTOS_PORT},GCC_RP2040>:hardware_clocks;hardware_exception>"
         $<$<STREQUAL:${FREERTOS_PORT},MSVC_MINGW>:winmm> # Windows library which implements timers