diff options
author | Loek Le Blansch <loek@pipeframe.xyz> | 2024-09-28 14:45:53 +0200 |
---|---|---|
committer | Loek Le Blansch <loek@pipeframe.xyz> | 2024-09-28 14:45:53 +0200 |
commit | 506090032a07f2f3a74a44d8c8774cbdd252c947 (patch) | |
tree | eb9cb129e39ba43a9460fc203538dfa84d138773 | |
parent | f3eeedc91a04ca0651e0fe78a2119e7e3e38e391 (diff) |
WIP ExternalProject test
-rw-r--r-- | mwe/dynlink/exec/CMakeLists.txt | 10 | ||||
-rw-r--r-- | mwe/dynlink/exec/main.c | 3 | ||||
-rw-r--r-- | mwe/dynlink/lib/CMakeLists.txt | 16 | ||||
-rw-r--r-- | mwe/dynlink/lib/test.c (renamed from mwe/dynlink/lib/lib.c) | 0 | ||||
-rw-r--r-- | mwe/dynlink/lib/test.h (renamed from mwe/dynlink/lib/lib.h) | 0 |
5 files changed, 26 insertions, 3 deletions
diff --git a/mwe/dynlink/exec/CMakeLists.txt b/mwe/dynlink/exec/CMakeLists.txt index 5335f0f..465b45e 100644 --- a/mwe/dynlink/exec/CMakeLists.txt +++ b/mwe/dynlink/exec/CMakeLists.txt @@ -5,12 +5,20 @@ set(CMAKE_CXX_STANDARD 20) project(main C CXX) +add_executable(main main.c) + # Since we have the source code for the test library, we might as well let # CMake use it so it automatically picks up the interface headers and compiles # the library for us. The same can be achieved manually, but is more code. add_subdirectory(../lib test) -add_executable(main main.c) +# include(ExternalProject) +# ExternalProject_Add(test_ext +# SOURCE_DIR ../../lib +# CMAKE_ARGS -DCMAKE_INSTALL_PREFIX="${CMAKE_BINARY_DIR}/ext" +# ) +# add_dependencies(main test_ext) +# find_package(test REQUIRED) # Make sure ld.so (linux) looks in the same folder as the final executable for # the .so dependency diff --git a/mwe/dynlink/exec/main.c b/mwe/dynlink/exec/main.c index 2bbdc20..ea55feb 100644 --- a/mwe/dynlink/exec/main.c +++ b/mwe/dynlink/exec/main.c @@ -1,7 +1,8 @@ -#include <lib.h> +#include <test.h> int main() { library_function(); return 0; } + diff --git a/mwe/dynlink/lib/CMakeLists.txt b/mwe/dynlink/lib/CMakeLists.txt index 2d15353..7efc91a 100644 --- a/mwe/dynlink/lib/CMakeLists.txt +++ b/mwe/dynlink/lib/CMakeLists.txt @@ -5,6 +5,20 @@ set(CMAKE_CXX_STANDARD 20) project(lib C CXX) -add_library(test SHARED lib.c) +add_library(test SHARED) + target_include_directories(test SYSTEM INTERFACE .) +target_sources(test PUBLIC + test.c +) + +target_sources(test PUBLIC FILE_SET HEADERS FILES + test.h +) + +install( + TARGETS test + FILE_SET HEADERS DESTINATION include +) + diff --git a/mwe/dynlink/lib/lib.c b/mwe/dynlink/lib/test.c index c7a78e4..c7a78e4 100644 --- a/mwe/dynlink/lib/lib.c +++ b/mwe/dynlink/lib/test.c diff --git a/mwe/dynlink/lib/lib.h b/mwe/dynlink/lib/test.h index 093eadb..093eadb 100644 --- a/mwe/dynlink/lib/lib.h +++ b/mwe/dynlink/lib/test.h |