Skip to content

Commit 80763f8

Browse files
committed
use imported targets for lua and cpptest to automatically handle dependency settings
1 parent c669712 commit 80763f8

File tree

4 files changed

+47
-11
lines changed

4 files changed

+47
-11
lines changed

CMakeLists.txt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -349,13 +349,34 @@ IF(WITH_NEL)
349349
IF(HUNTER_ENABLED)
350350
IF(WITH_GUI)
351351
HUNTER_ADD_PACKAGE(luabind)
352+
FIND_PACKAGE(Lua REQUIRED)
353+
if((Lua_FOUND OR LUA_FOUND) AND NOT TARGET Lua::Lua)
354+
message(FATAL_ERROR "lua target")
355+
add_library(Lua::Lua INTERFACE IMPORTED)
356+
set_target_properties(
357+
Lua::Lua
358+
PROPERTIES
359+
INTERFACE_INCLUDE_DIRECTORIES "${LUA_INCLUDE_DIR}"
360+
INTERFACE_LINK_LIBRARIES "${LUA_LIBRARIES}"
361+
)
362+
endif()
352363
FIND_PACKAGE(Luabind REQUIRED)
353364
ENDIF()
354365

355366
HUNTER_ADD_PACKAGE(CURL)
356367
FIND_PACKAGE(CURL CONFIG REQUIRED)
357368
ELSE()
358369
IF(WITH_GUI)
370+
FIND_PACKAGE(Lua REQUIRED)
371+
if((Lua_FOUND OR LUA_FOUND) AND NOT TARGET Lua::Lua)
372+
add_library(Lua::Lua INTERFACE IMPORTED)
373+
set_target_properties(
374+
Lua::Lua
375+
PROPERTIES
376+
INTERFACE_INCLUDE_DIRECTORIES "${LUA_INCLUDE_DIR}"
377+
INTERFACE_LINK_LIBRARIES "${LUA_LIBRARIES}"
378+
)
379+
endif()
359380
FIND_PACKAGE(Luabind REQUIRED)
360381
ENDIF()
361382

CMakeModules/FindCppTest.cmake

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,4 +81,16 @@ ELSE()
8181
ENDIF()
8282
ENDIF()
8383

84+
85+
if(CPPTEST_FOUND AND NOT TARGET CppTest::CppTest)
86+
add_library(CppTest::CppTest INTERFACE IMPORTED)
87+
set_target_properties(
88+
CppTest::CppTest
89+
PROPERTIES
90+
INTERFACE_INCLUDE_DIRECTORIES "${CPPTEST_INCLUDE_DIR}"
91+
INTERFACE_LINK_LIBRARIES
92+
$<IF:$<AND:$<BOOL:${CPPTEST_LIBRARY_DEBUG}>,$<CONFIG:Debug>>,${CPPTEST_LIBRARY_DEBUG},${CPPTEST_LIBRARY_RELEASE}>
93+
)
94+
endif()
95+
8496
MARK_AS_ADVANCED(CPPTEST_LIBRARY_RELEASE CPPTEST_LIBRARY_DEBUG)

nel/src/gui/CMakeLists.txt

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,17 @@ NL_TARGET_LIB(nelgui ${SRC} ${HEADERS})
77
add_project_library_alias(nelgui gui)
88

99
TARGET_INCLUDE_DIRECTORIES(nelgui
10-
PUBLIC
11-
$<BUILD_INTERFACE:${LUA_INCLUDE_DIR}>
12-
$<INSTALL_INTERFACE:include>
1310
PRIVATE
1411
${LUABIND_INCLUDE_DIR}
1512
${CURL_INCLUDE_DIRS}
1613
)
1714

1815
TARGET_LINK_LIBRARIES(nelgui
1916
PUBLIC
20-
nelmisc
21-
nelweb
22-
nel3d
23-
${LUA_LIBRARIES}
17+
NeL::misc
18+
NeL::web
19+
NeL::3d
20+
Lua::Lua
2421
${LUABIND_LIBRARIES}
2522
PRIVATE
2623
CURL::libcurl

nel/tools/nel_unit_test/CMakeLists.txt

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,14 @@ ADD_EXECUTABLE(nel_unit_test
33
)
44
ADD_TEST(NAME nel_unit_test COMMAND nel_unit_test)
55

6-
TARGET_INCLUDE_DIRECTORIES(nel_unit_test PRIVATE ${CPPTEST_INCLUDE_DIR})
6+
TARGET_LINK_LIBRARIES(nel_unit_test
7+
PRIVATE
8+
CppTest::CppTest
9+
NeL::misc
10+
NeL::net
11+
NeL::ligo
12+
)
713

8-
TARGET_LINK_LIBRARIES(nel_unit_test ${CPPTEST_LIBRARIES} nelmisc nelnet nelligo)
914
NL_DEFAULT_PROPS(nel_unit_test "Unit Tests")
1015
NL_ADD_RUNTIME_FLAGS(nel_unit_test)
1116

@@ -22,7 +27,7 @@ add_test_executable(nel_misc_config_file_test
2227
)
2328
target_link_libraries(nel_misc_config_file_test
2429
PRIVATE
25-
nelmisc
30+
NeL::misc
2631
)
2732
target_compile_definitions(nel_misc_config_file_test
2833
PUBLIC
@@ -35,5 +40,6 @@ add_test_executable(nel_net_module_test
3540
)
3641
target_link_libraries(nel_net_module_test
3742
PRIVATE
38-
nelmisc nelnet
43+
NeL::misc
44+
NeL::net
3945
)

0 commit comments

Comments
 (0)