build: support "private" headers (unlisted in module headers)

This commit is contained in:
Gabriel Ferreira
2022-10-08 21:11:38 -03:00
parent 4d8ef16f60
commit 881f64017f
3 changed files with 13 additions and 5 deletions

View File

@@ -17,6 +17,7 @@ additional_commands:
LIBNAME : '1'
SOURCE_FILES : '*'
HEADER_FILES : '*'
PRIVATE_HEADER_FILES : '*'
LIBRARIES_TO_LINK : '*'
TEST_SOURCES : '*'
DEPRECATED_HEADER_FILES : '*'

View File

@@ -17,6 +17,7 @@ additional_commands:
LIBNAME : '1'
SOURCE_FILES : '*'
HEADER_FILES : '*'
PRIVATE_HEADER_FILES : '*'
LIBRARIES_TO_LINK : '*'
TEST_SOURCES : '*'
DEPRECATED_HEADER_FILES : '*'

View File

@@ -35,8 +35,14 @@ function(build_lib)
# Argument parsing
set(options IGNORE_PCH)
set(oneValueArgs LIBNAME)
set(multiValueArgs SOURCE_FILES HEADER_FILES LIBRARIES_TO_LINK TEST_SOURCES
DEPRECATED_HEADER_FILES MODULE_ENABLED_FEATURES
set(multiValueArgs
SOURCE_FILES
HEADER_FILES
LIBRARIES_TO_LINK
TEST_SOURCES
DEPRECATED_HEADER_FILES
MODULE_ENABLED_FEATURES
PRIVATE_HEADER_FILES
)
cmake_parse_arguments(
"BLIB" "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}
@@ -119,7 +125,7 @@ function(build_lib)
${lib${BLIB_LIBNAME}}
PROPERTIES
PUBLIC_HEADER
"${BLIB_HEADER_FILES};${BLIB_DEPRECATED_HEADER_FILES};${config_headers};${CMAKE_HEADER_OUTPUT_DIRECTORY}/${BLIB_LIBNAME}-module.h"
"${BLIB_HEADER_FILES};${BLIB_DEPRECATED_HEADER_FILES};${config_headers};${BLIB_PRIVATE_HEADER_FILES};${CMAKE_HEADER_OUTPUT_DIRECTORY}/${BLIB_LIBNAME}-module.h"
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} # set output
# directory for
# DLLs
@@ -221,8 +227,8 @@ function(build_lib)
# Copy all header files to outputfolder/include before each build
copy_headers_before_building_lib(
${BLIB_LIBNAME} ${CMAKE_HEADER_OUTPUT_DIRECTORY} "${BLIB_HEADER_FILES}"
public
${BLIB_LIBNAME} ${CMAKE_HEADER_OUTPUT_DIRECTORY}
"${BLIB_HEADER_FILES};${BLIB_PRIVATE_HEADER_FILES}" public
)
if(BLIB_DEPRECATED_HEADER_FILES)
copy_headers_before_building_lib(