Working
This commit is contained in:
parent
0c66ff89b3
commit
9b8308eb4a
11 changed files with 121 additions and 0 deletions
17
libs/lib1/CMakeLists.txt
Normal file
17
libs/lib1/CMakeLists.txt
Normal file
|
@ -0,0 +1,17 @@
|
|||
# Defines a static library target named 'lib1' from its source file.
|
||||
add_library(lib1 STATIC src/lib1.c)
|
||||
|
||||
# Specifies include directories that are part of lib1's public interface.
|
||||
# - PUBLIC: Means that targets linking to lib1 (like cmake_tutorialApp) will
|
||||
# inherit this include path. This allows them to find lib1.h.
|
||||
# ${CMAKE_CURRENT_SOURCE_DIR} refers to the current directory where this CMakeLists.txt resides.
|
||||
target_include_directories(lib1 PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/inc
|
||||
)
|
||||
|
||||
# Links lib1 to lib2 and lib3.
|
||||
# - PRIVATE: Indicates that lib1's implementation depends on lib2 and lib3,
|
||||
# but targets linking to lib1 do NOT need to know about lib2 or lib3.
|
||||
# CMake automatically propagates the PUBLIC/INTERFACE include directories from lib2 and lib3
|
||||
# to lib1, so explicit include directories for them are not needed here.
|
||||
target_link_libraries(lib1 PRIVATE lib2 lib3)
|
6
libs/lib1/inc/lib1.h
Normal file
6
libs/lib1/inc/lib1.h
Normal file
|
@ -0,0 +1,6 @@
|
|||
#pragma once
|
||||
// No need to include lib2.h or lib3.h here unless their types/functions
|
||||
// are part of lib1.h's public interface. For simple calls in lib1.c,
|
||||
// including in lib1.c is sufficient.
|
||||
|
||||
void lib1_function();
|
11
libs/lib1/src/lib1.c
Normal file
11
libs/lib1/src/lib1.c
Normal file
|
@ -0,0 +1,11 @@
|
|||
#include "lib1.h" // Include lib1's own header
|
||||
#include "lib2.h" // Include lib2's header to call lib2_function
|
||||
#include "lib3.h" // Include lib3's header to call lib3_function
|
||||
#include <stdio.h> // Include standard I/O here, as printf is used in this source file.
|
||||
|
||||
void lib1_function() {
|
||||
printf("This is a function from Library 1.\n");
|
||||
lib2_function(); // Call function from lib2
|
||||
lib3_function(); // Call function from lib3
|
||||
printf("Lib1 has called functions from Lib2 and Lib3.\n");
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue