paullouisageneau / libjuice

JUICE is a UDP Interactive Connectivity Establishment library
Mozilla Public License 2.0
403 stars 75 forks source link

Disabled/optional juice-static fails CMake imports #252

Closed fatduckling closed 2 months ago

fatduckling commented 2 months ago

Hi On Debian, it builds the juice target, ignoring the juice-static target. This is fine if the juice-static is meant to be optional, but I'm also not able to import the library using find_package(LibJuice REQUIRED) if the static library isn't built.

saleem@saleem-Z790:/tmp/libjuice-1.5.0/build$ cmake -DNO_SERVER=ON -DWARNINGS_AS_ERRORS=ON -DCLANG_TIDY=ON ..
-- The C compiler identification is GNU 13.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - yes
-- Found Threads: TRUE  
-- Configuring done (0.2s)
-- Generating done (0.0s)
-- Build files have been written to: /tmp/libjuice-1.5.0/build
saleem@saleem-Z790:/tmp/libjuice-1.5.0/build$ make -j23
[  2%] Building C object CMakeFiles/juice.dir/src/addr.c.o
[  5%] Building C object CMakeFiles/juice.dir/src/agent.c.o
[  8%] Building C object CMakeFiles/juice.dir/src/crc32.c.o
[ 11%] Building C object CMakeFiles/juice.dir/src/const_time.c.o
[ 13%] Building C object CMakeFiles/juice.dir/src/conn.c.o
[ 16%] Building C object CMakeFiles/juice.dir/src/conn_poll.c.o
[ 19%] Building C object CMakeFiles/juice.dir/src/conn_thread.c.o
[ 22%] Building C object CMakeFiles/juice.dir/src/conn_mux.c.o
[ 25%] Building C object CMakeFiles/juice.dir/src/base64.c.o
[ 27%] Building C object CMakeFiles/juice.dir/src/hash.c.o
[ 30%] Building C object CMakeFiles/juice.dir/src/hmac.c.o
[ 33%] Building C object CMakeFiles/juice.dir/src/juice.c.o
[ 36%] Building C object CMakeFiles/juice.dir/src/ice.c.o
[ 38%] Building C object CMakeFiles/juice.dir/src/log.c.o
[ 41%] Building C object CMakeFiles/juice.dir/src/random.c.o
[ 44%] Building C object CMakeFiles/juice.dir/src/server.c.o
[ 47%] Building C object CMakeFiles/juice.dir/src/stun.c.o
[ 50%] Building C object CMakeFiles/juice.dir/src/timestamp.c.o
[ 52%] Building C object CMakeFiles/juice.dir/src/turn.c.o
[ 55%] Building C object CMakeFiles/juice.dir/src/udp.c.o
[ 58%] Linking C shared library libjuice.so
[ 58%] Built target juice
[ 61%] Building C object CMakeFiles/juice-tests.dir/test/main.c.o
[ 63%] Building C object CMakeFiles/juice-tests.dir/test/crc32.c.o
[ 69%] Building C object CMakeFiles/juice-tests.dir/test/stun.c.o
[ 69%] Building C object CMakeFiles/juice-tests.dir/test/base64.c.o
[ 72%] Building C object CMakeFiles/juice-tests.dir/test/gathering.c.o
[ 75%] Building C object CMakeFiles/juice-tests.dir/test/connectivity.c.o
[ 77%] Building C object CMakeFiles/juice-tests.dir/test/turn.c.o
[ 80%] Building C object CMakeFiles/juice-tests.dir/test/thread.c.o
[ 83%] Building C object CMakeFiles/juice-tests.dir/test/mux.c.o
[ 86%] Building C object CMakeFiles/juice-tests.dir/test/notrickle.c.o
[ 88%] Building C object CMakeFiles/juice-tests.dir/test/conflict.c.o
[ 91%] Building C object CMakeFiles/juice-tests.dir/test/server.c.o
[ 94%] Building C object CMakeFiles/juice-tests.dir/test/bind.c.o
[ 97%] Building C object CMakeFiles/juice-tests.dir/test/ufrag.c.o
[100%] Linking C executable tests
[100%] Built target juice-tests

When trying to import via find_package(LibJuice REQUIRED), I get error:

  The imported target "LibJuice::LibJuiceStatic" references the file

     "/usr/local/lib/libjuice-static.a"

Thanks

paullouisageneau commented 2 months ago

Thank you for reporting, this is fixed by https://github.com/paullouisageneau/libjuice/pull/253 and released as v1.5.1.