From a5148ad43367bbc81df269d60e1118e411326227 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Thu, 6 Jun 2019 16:58:56 +0300 Subject: [PATCH 1/3] libc: minimal: Add headers as system includes This is consistent with how newlib headers are treated, and will have effect of ninlibc headers to be further down in the include order. This is important, because some POSIX subsys headers override those of libc. Without this change, we can't streamline POSIX build config using zephyr_interface_library_named() cmake directive, because includes will be in wrong order. Signed-off-by: Paul Sokolovsky --- lib/libc/minimal/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/libc/minimal/CMakeLists.txt b/lib/libc/minimal/CMakeLists.txt index 4cab02238fdfa..f97983377b40a 100644 --- a/lib/libc/minimal/CMakeLists.txt +++ b/lib/libc/minimal/CMakeLists.txt @@ -1,6 +1,6 @@ # SPDX-License-Identifier: Apache-2.0 -zephyr_include_directories(include) +zephyr_system_include_directories(include) zephyr_library() zephyr_library_sources( From 24b0e4e7409bf58982dc995f1a1076016f5ed0da Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Mon, 6 May 2019 16:50:24 +0300 Subject: [PATCH 2/3] lib: posix: Switch to use zephyr_interface_library_named cmake directive Similar to how other sub-libraries are defined in Zephyr tree, e.g. "fs", "lgvl", etc. This is supposed to help with the need to explicitly add posix include path to each and every application using POSIX subsys. Fixes: #15627 Signed-off-by: Paul Sokolovsky --- lib/posix/CMakeLists.txt | 2 +- lib/posix/Kconfig | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/posix/CMakeLists.txt b/lib/posix/CMakeLists.txt index a83dff9296050..c0b7eebfb682f 100644 --- a/lib/posix/CMakeLists.txt +++ b/lib/posix/CMakeLists.txt @@ -1,7 +1,7 @@ # SPDX-License-Identifier: Apache-2.0 -add_library(PTHREAD INTERFACE) +zephyr_interface_library_named(PTHREAD) target_include_directories(PTHREAD INTERFACE ${ZEPHYR_BASE}/include/posix) diff --git a/lib/posix/Kconfig b/lib/posix/Kconfig index ef8e60638764d..89ac4b05076cd 100644 --- a/lib/posix/Kconfig +++ b/lib/posix/Kconfig @@ -96,4 +96,12 @@ config POSIX_MAX_OPEN_FILES endif endif # FILE_SYSTEM +# The name of this option is mandated by zephyr_interface_library_named +# cmake directive. +config APP_LINK_WITH_PTHREAD + bool "Make POSIX headers available to application" + default y + help + Add POSIX header files to the 'app' include path. + endif # POSIX_API From f4832e4b1bcbb3bde20b4920c21003d60c29804a Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Mon, 6 May 2019 16:54:30 +0300 Subject: [PATCH 3/3] tests: posix: No longer use target_include_directories This is no longer needed after using zephyr_interface_library_named cmake directive in the POSIX subsys source itself. Signed-off-by: Paul Sokolovsky --- tests/posix/common/CMakeLists.txt | 1 - tests/posix/fs/CMakeLists.txt | 2 -- 2 files changed, 3 deletions(-) diff --git a/tests/posix/common/CMakeLists.txt b/tests/posix/common/CMakeLists.txt index dcc43da1ef63b..8ad20ac3515a0 100644 --- a/tests/posix/common/CMakeLists.txt +++ b/tests/posix/common/CMakeLists.txt @@ -4,6 +4,5 @@ cmake_minimum_required(VERSION 3.13.1) include($ENV{ZEPHYR_BASE}/cmake/app/boilerplate.cmake NO_POLICY_SCOPE) project(posix_common) -target_include_directories(app PRIVATE $ENV{ZEPHYR_BASE}/include/posix) FILE(GLOB app_sources src/*.c) target_sources(app PRIVATE ${app_sources}) diff --git a/tests/posix/fs/CMakeLists.txt b/tests/posix/fs/CMakeLists.txt index 8d7c60607bb63..863e2231b4792 100644 --- a/tests/posix/fs/CMakeLists.txt +++ b/tests/posix/fs/CMakeLists.txt @@ -4,7 +4,5 @@ cmake_minimum_required(VERSION 3.13.1) include($ENV{ZEPHYR_BASE}/cmake/app/boilerplate.cmake NO_POLICY_SCOPE) project(fs) -target_include_directories(app PRIVATE $ENV{ZEPHYR_BASE}/include/) - FILE(GLOB app_sources src/*.c) target_sources(app PRIVATE ${app_sources})