Skip to content

Commit dc6745a

Browse files
authored
Mark required link libraries as PUBLIC (#520)
This way dependent projects only need to add this: ``` link_libraries(qjs) ``` or ``` target_link_libraries(mytarget qjs) ``` And CMake will link the resulting target with the libraries that qjs needs too.
1 parent 6dd2ce3 commit dc6745a

File tree

1 file changed

+14
-15
lines changed

1 file changed

+14
-15
lines changed

CMakeLists.txt

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ list(APPEND qjs_defines _GNU_SOURCE)
169169
if(WIN32)
170170
list(APPEND qjs_defines WIN32_LEAN_AND_MEAN _WIN32_WINNT=0x0602)
171171
endif()
172-
list(APPEND qjs_libs qjs ${CMAKE_DL_LIBS})
172+
list(APPEND qjs_libs ${CMAKE_DL_LIBS})
173173
find_package(Threads)
174174
if(NOT CMAKE_SYSTEM_NAME STREQUAL "WASI")
175175
list(APPEND qjs_libs ${CMAKE_THREAD_LIBS_INIT})
@@ -184,6 +184,7 @@ target_include_directories(qjs PUBLIC
184184
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
185185
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
186186
)
187+
target_link_libraries(qjs PUBLIC ${qjs_libs})
187188

188189
if(EMSCRIPTEN)
189190
add_executable(qjs_wasm ${qjs_sources})
@@ -212,7 +213,7 @@ add_executable(qjsc
212213
)
213214
add_qjs_libc_if_needed(qjsc)
214215
target_compile_definitions(qjsc PRIVATE ${qjs_defines})
215-
target_link_libraries(qjsc ${qjs_libs})
216+
target_link_libraries(qjsc qjs)
216217

217218

218219
# QuickJS CLI
@@ -227,7 +228,7 @@ set_target_properties(qjs_exe PROPERTIES
227228
OUTPUT_NAME "qjs"
228229
)
229230
target_compile_definitions(qjs_exe PRIVATE ${qjs_defines})
230-
target_link_libraries(qjs_exe ${qjs_libs})
231+
target_link_libraries(qjs_exe qjs)
231232
if(BUILD_STATIC_QJS_EXE OR MINGW)
232233
target_link_options(qjs_exe PRIVATE -static)
233234
if(MINGW)
@@ -249,7 +250,7 @@ if(NOT WIN32 AND NOT EMSCRIPTEN)
249250
)
250251
add_qjs_libc_if_needed(run-test262)
251252
target_compile_definitions(run-test262 PRIVATE ${qjs_defines})
252-
target_link_libraries(run-test262 ${qjs_libs})
253+
target_link_libraries(run-test262 qjs)
253254
endif()
254255

255256
# Unicode generator
@@ -268,7 +269,7 @@ add_executable(function_source
268269
add_qjs_libc_if_needed(function_source)
269270
target_include_directories(function_source PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
270271
target_compile_definitions(function_source PRIVATE ${qjs_defines})
271-
target_link_libraries(function_source ${qjs_libs})
272+
target_link_libraries(function_source qjs)
272273

273274
# Examples
274275
#
@@ -280,15 +281,15 @@ if(BUILD_EXAMPLES)
280281
add_qjs_libc_if_needed(hello)
281282
target_include_directories(hello PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
282283
target_compile_definitions(hello PRIVATE ${qjs_defines})
283-
target_link_libraries(hello ${qjs_libs})
284+
target_link_libraries(hello qjs)
284285

285286
add_executable(hello_module
286287
gen/hello_module.c
287288
)
288289
add_qjs_libc_if_needed(hello_module)
289290
target_include_directories(hello_module PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
290291
target_compile_definitions(hello_module PRIVATE ${qjs_defines})
291-
target_link_libraries(hello_module ${qjs_libs})
292+
target_link_libraries(hello_module qjs)
292293

293294
add_library(fib MODULE examples/fib.c)
294295
set_target_properties(fib PROPERTIES
@@ -297,9 +298,8 @@ if(BUILD_EXAMPLES)
297298
)
298299
target_compile_definitions(fib PRIVATE JS_SHARED_LIBRARY)
299300
if(WIN32)
300-
target_link_libraries(fib ${qjs_libs})
301-
endif()
302-
if(APPLE)
301+
target_link_libraries(fib qjs)
302+
elseif(APPLE)
303303
target_link_options(fib PRIVATE -undefined dynamic_lookup)
304304
endif()
305305

@@ -310,11 +310,10 @@ if(BUILD_EXAMPLES)
310310
)
311311
target_compile_definitions(point PRIVATE JS_SHARED_LIBRARY)
312312
if(WIN32)
313-
target_link_libraries(point ${qjs_libs})
314-
endif()
315-
if(APPLE)
313+
target_link_libraries(point qjs)
314+
elseif(APPLE)
316315
target_link_options(point PRIVATE -undefined dynamic_lookup)
317-
endif()
316+
endif()
318317

319318
add_executable(test_fib
320319
examples/fib.c
@@ -323,7 +322,7 @@ if(BUILD_EXAMPLES)
323322
add_qjs_libc_if_needed(test_fib)
324323
target_include_directories(test_fib PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
325324
target_compile_definitions(test_fib PRIVATE ${qjs_defines})
326-
target_link_libraries(test_fib ${qjs_libs})
325+
target_link_libraries(test_fib qjs)
327326
endif()
328327

329328
add_executable(test_conv

0 commit comments

Comments
 (0)