add direct source dependency to each library

Fix library generation with some CMake generators by including a direct
source file dependency for each library.
This commit is contained in:
Brent Cook 2022-12-13 05:44:07 -06:00
parent 4f0f6ebd1a
commit 80eb145460
7 changed files with 9 additions and 3 deletions

View File

@ -1009,7 +1009,7 @@ target_include_directories(crypto_obj
PUBLIC PUBLIC
../include) ../include)
add_library(crypto $<TARGET_OBJECTS:crypto_obj>) add_library(crypto $<TARGET_OBJECTS:crypto_obj> empty.c)
export_symbol(crypto ${CMAKE_CURRENT_BINARY_DIR}/crypto_p.sym) export_symbol(crypto ${CMAKE_CURRENT_BINARY_DIR}/crypto_p.sym)
target_link_libraries(crypto ${PLATFORM_LIBS}) target_link_libraries(crypto ${PLATFORM_LIBS})

View File

@ -32,6 +32,7 @@ endif
EXTRA_DIST = VERSION EXTRA_DIST = VERSION
EXTRA_DIST += CMakeLists.txt EXTRA_DIST += CMakeLists.txt
EXTRA_DIST += crypto.sym EXTRA_DIST += crypto.sym
EXTRA_DIST += empty.c
# needed for a CMake target # needed for a CMake target
EXTRA_DIST += compat/strcasecmp.c EXTRA_DIST += compat/strcasecmp.c

View File

@ -79,7 +79,7 @@ target_include_directories(bs_obj
if(BUILD_SHARED_LIBS) if(BUILD_SHARED_LIBS)
add_library(ssl $<TARGET_OBJECTS:ssl_obj> $<TARGET_OBJECTS:bs_obj>) add_library(ssl $<TARGET_OBJECTS:ssl_obj> $<TARGET_OBJECTS:bs_obj>)
else() else()
add_library(ssl $<TARGET_OBJECTS:ssl_obj>) add_library(ssl $<TARGET_OBJECTS:ssl_obj> empty.c)
endif() endif()
export_symbol(ssl ${CMAKE_CURRENT_SOURCE_DIR}/ssl.sym) export_symbol(ssl ${CMAKE_CURRENT_SOURCE_DIR}/ssl.sym)

View File

@ -15,6 +15,7 @@ noinst_DATA = remove_bs_objects
EXTRA_DIST = VERSION EXTRA_DIST = VERSION
EXTRA_DIST += CMakeLists.txt EXTRA_DIST += CMakeLists.txt
EXTRA_DIST += ssl.sym EXTRA_DIST += ssl.sym
EXTRA_DIST += empty.c
CLEANFILES = libssl_la_objects.mk CLEANFILES = libssl_la_objects.mk

View File

@ -48,7 +48,7 @@ target_include_directories(tls_obj
../include) ../include)
add_library(tls $<TARGET_OBJECTS:tls_obj> $<TARGET_OBJECTS:ssl_obj> add_library(tls $<TARGET_OBJECTS:tls_obj> $<TARGET_OBJECTS:ssl_obj>
$<TARGET_OBJECTS:crypto_obj>) $<TARGET_OBJECTS:crypto_obj> empty.c)
export_symbol(tls ${CMAKE_CURRENT_BINARY_DIR}/tls.sym) export_symbol(tls ${CMAKE_CURRENT_BINARY_DIR}/tls.sym)
target_link_libraries(tls ${PLATFORM_LIBS}) target_link_libraries(tls ${PLATFORM_LIBS})

View File

@ -8,6 +8,7 @@ lib_LTLIBRARIES = libtls.la
EXTRA_DIST = VERSION EXTRA_DIST = VERSION
EXTRA_DIST += CMakeLists.txt EXTRA_DIST += CMakeLists.txt
EXTRA_DIST += tls.sym EXTRA_DIST += tls.sym
EXTRA_DIST += empty.c
CLEANFILES = libtls_la_objects.mk CLEANFILES = libtls_la_objects.mk

View File

@ -141,6 +141,7 @@ echo "LibreSSL version `cat VERSION`"
# copy libcrypto source # copy libcrypto source
echo copying libcrypto source echo copying libcrypto source
rm -f crypto/*.c crypto/*.h rm -f crypto/*.c crypto/*.h
touch crypto/empty.c
for i in `awk '/SOURCES|HEADERS/ { print $3 }' crypto/Makefile.am` ; do for i in `awk '/SOURCES|HEADERS/ { print $3 }' crypto/Makefile.am` ; do
dir=`dirname $i` dir=`dirname $i`
mkdir -p crypto/$dir mkdir -p crypto/$dir
@ -231,6 +232,7 @@ done
# copy libtls source # copy libtls source
echo copying libtls source echo copying libtls source
rm -f tls/*.c tls/*.h libtls/src/*.c libtls/src/*.h rm -f tls/*.c tls/*.h libtls/src/*.c libtls/src/*.h
touch tls/empty.c
for i in `awk '/SOURCES|HEADERS/ { print $3 }' tls/Makefile.am` ; do for i in `awk '/SOURCES|HEADERS/ { print $3 }' tls/Makefile.am` ; do
if [ -e $libtls_src/$i ]; then if [ -e $libtls_src/$i ]; then
$CP $libtls_src/$i tls $CP $libtls_src/$i tls
@ -276,6 +278,7 @@ done
# copy libssl source # copy libssl source
echo "copying libssl source" echo "copying libssl source"
rm -f ssl/*.c ssl/*.h rm -f ssl/*.c ssl/*.h
touch ssl/empty.c
for i in `awk '/SOURCES|HEADERS/ { print $3 }' ssl/Makefile.am` ; do for i in `awk '/SOURCES|HEADERS/ { print $3 }' ssl/Makefile.am` ; do
dir=`dirname $i` dir=`dirname $i`
mkdir -p ssl/$dir mkdir -p ssl/$dir