sourcey / libsourcey

C++14 evented IO libraries for high performance networking and media based applications
https://sourcey.com/libsourcey
GNU Lesser General Public License v2.1
1.31k stars 347 forks source link

openSSL build issue #238

Open zacaikido opened 6 years ago

zacaikido commented 6 years ago

Hello !

when I try brew link --force openssl got : Warning: Refusing to link: openssl Linking keg-only openssl means you may end up linking against the insecure, deprecated system OpenSSL while using the headers from Homebrew's openssl. Instead, pass the full include/library paths to your compiler e.g.: -I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib So at the end OPENSSL_INCLUDE_DIR is defined with the path brew gave me. should work?

I just tried : cmake .. -DCMAKE_BUILD_TYPE=DEBUG -DBUILD_SHARED_LIBS=OFF -DBUILD_MODULES=OFF -DBUILD_APPLICATIONS=OFF -DBUILD_SAMPLES=OFF -DBUILD_TESTS=OFF -DWITH_WEBRTC=ON -DWITH_FFMPEG=ON -DBUILD_MODULE_base=ON -DBUILD_MODULE_crypto=ON -DBUILD_MODULE_http=ON -DBUILD_MODULE_json=ON -DBUILD_MODULE_av=ON -DBUILD_MODULE_net=ON -DBUILD_MODULE_socketio=ON -DBUILD_MODULE_symple=ON -DBUILD_MODULE_util=ON -DBUILD_MODULE_uv=ON -DBUILD_MODULE_webrtc=ON -DWEBRTC_ROOT_DIR=/Users/wolfgang/libsourcey/webrtcbuilds/out/src/out/x64/Debug -DWEBRTC_LIBRARIES=/Users/wolfgang/libsourcey/webrtcbuilds/out/src/out/x64/Debug/obj -DWEBRTC_INCLUDE_DIRS=/Users/wolfgang/libsourcey/webrtcbuilds/out/src/out/x64/Debug/obj -DOPENSSL_INCLUDE_DIR=/usr/local/opt/openssl/include

Got :

-- Checking for one of the modules 'opencv'
-- Including APPLE's foundation and AVFoundation frameworks
-- - Linking dependency libuv with libraries: 
-- - Linking dependency minizip with libraries: 
-- - Linking dependency http_parser with libraries: 
WEBRTC_INCLUDE_DIR: WEBRTC_INCLUDE_DIR-NOTFOUND
WEBRTC_INCLUDE_DIRS: /Users/wolfgang/libsourcey/webrtcbuilds/out/src/out/x64/Debug/obj
-- WEBRTC Variables:
-- -- Found: TRUE
-- -- Include Dirs: /Users/wolfgang/libsourcey/webrtcbuilds/out/src/out/x64/Debug/obj
-- -- Libraries: /Users/wolfgang/libsourcey/webrtcbuilds/out/src/out/x64/Debug/obj
-- -- Debug Libraries: 
-- -- Release Libraries: 
-- -- Dependencies: 
-- Using BoringSSL
-- Including module archo
-- Including dependency: FFmpeg
-- Including module av
-- Including module base
-- Including dependency: SSL
-- Including dependency: WebRTC
WEBRTC_INCLUDE_DIR: WEBRTC_INCLUDE_DIR-NOTFOUND
WEBRTC_INCLUDE_DIRS: /Users/wolfgang/libsourcey/webrtcbuilds/out/src/out/x64/Debug/obj
-- WEBRTC Variables:
-- -- Found: TRUE
-- -- Include Dirs: /Users/wolfgang/libsourcey/webrtcbuilds/out/src/out/x64/Debug/obj
-- -- Libraries: /Users/wolfgang/libsourcey/webrtcbuilds/out/src/out/x64/Debug/obj
-- -- Debug Libraries: 
-- -- Release Libraries: 
-- -- Dependencies: 
-- Including BoringSSL TRUE
-- Including module crypto
-- Including dependency: SSL
-- Including dependency: WebRTC
WEBRTC_INCLUDE_DIR: WEBRTC_INCLUDE_DIR-NOTFOUND
WEBRTC_INCLUDE_DIRS: /Users/wolfgang/libsourcey/webrtcbuilds/out/src/out/x64/Debug/obj
-- WEBRTC Variables:
-- -- Found: TRUE
-- -- Include Dirs: /Users/wolfgang/libsourcey/webrtcbuilds/out/src/out/x64/Debug/obj
-- -- Libraries: /Users/wolfgang/libsourcey/webrtcbuilds/out/src/out/x64/Debug/obj
-- -- Debug Libraries: 
-- -- Release Libraries: 
-- -- Dependencies: 
-- Including BoringSSL TRUE
-- Including module http
-- Including module json
-- Including dependency: SSL
-- Including dependency: WebRTC
WEBRTC_INCLUDE_DIR: WEBRTC_INCLUDE_DIR-NOTFOUND
WEBRTC_INCLUDE_DIRS: /Users/wolfgang/libsourcey/webrtcbuilds/out/src/out/x64/Debug/obj
-- WEBRTC Variables:
-- -- Found: TRUE
-- -- Include Dirs: /Users/wolfgang/libsourcey/webrtcbuilds/out/src/out/x64/Debug/obj
-- -- Libraries: /Users/wolfgang/libsourcey/webrtcbuilds/out/src/out/x64/Debug/obj
-- -- Debug Libraries: 
-- -- Release Libraries: 
-- -- Dependencies: 
-- Including BoringSSL TRUE
-- Including module net
-- Including module sched
-- Including dependency: SSL
-- Including dependency: WebRTC
WEBRTC_INCLUDE_DIR: WEBRTC_INCLUDE_DIR-NOTFOUND
WEBRTC_INCLUDE_DIRS: /Users/wolfgang/libsourcey/webrtcbuilds/out/src/out/x64/Debug/obj
-- WEBRTC Variables:
-- -- Found: TRUE
-- -- Include Dirs: /Users/wolfgang/libsourcey/webrtcbuilds/out/src/out/x64/Debug/obj
-- -- Libraries: /Users/wolfgang/libsourcey/webrtcbuilds/out/src/out/x64/Debug/obj
-- -- Debug Libraries: 
-- -- Release Libraries: 
-- -- Dependencies: 
-- Including BoringSSL TRUE
-- Including module socketio
-- Including dependency: SSL
-- Including dependency: WebRTC
WEBRTC_INCLUDE_DIR: WEBRTC_INCLUDE_DIR-NOTFOUND
WEBRTC_INCLUDE_DIRS: /Users/wolfgang/libsourcey/webrtcbuilds/out/src/out/x64/Debug/obj
-- WEBRTC Variables:
-- -- Found: TRUE
-- -- Include Dirs: /Users/wolfgang/libsourcey/webrtcbuilds/out/src/out/x64/Debug/obj
-- -- Libraries: /Users/wolfgang/libsourcey/webrtcbuilds/out/src/out/x64/Debug/obj
-- -- Debug Libraries: 
-- -- Release Libraries: 
-- -- Dependencies: 
-- Including BoringSSL TRUE
-- Including module stun
-- Including dependency: SSL
-- Including dependency: WebRTC
WEBRTC_INCLUDE_DIR: WEBRTC_INCLUDE_DIR-NOTFOUND
WEBRTC_INCLUDE_DIRS: /Users/wolfgang/libsourcey/webrtcbuilds/out/src/out/x64/Debug/obj
-- WEBRTC Variables:
-- -- Found: TRUE
-- -- Include Dirs: /Users/wolfgang/libsourcey/webrtcbuilds/out/src/out/x64/Debug/obj
-- -- Libraries: /Users/wolfgang/libsourcey/webrtcbuilds/out/src/out/x64/Debug/obj
-- -- Debug Libraries: 
-- -- Release Libraries: 
-- -- Dependencies: 
-- Including BoringSSL TRUE
-- Including module symple
-- Including module turn
-- Including module util
-- Including dependency: WebRTC
WEBRTC_INCLUDE_DIR: WEBRTC_INCLUDE_DIR-NOTFOUND
WEBRTC_INCLUDE_DIRS: /Users/wolfgang/libsourcey/webrtcbuilds/out/src/out/x64/Debug/obj
-- WEBRTC Variables:
-- -- Found: TRUE
-- -- Include Dirs: /Users/wolfgang/libsourcey/webrtcbuilds/out/src/out/x64/Debug/obj
-- -- Libraries: /Users/wolfgang/libsourcey/webrtcbuilds/out/src/out/x64/Debug/obj
-- -- Debug Libraries: 
-- -- Release Libraries: 
-- -- Dependencies: 
-- Including module webrtc
-- Creating 'libsourcey.pc'
-- Creating 'libsourcey.h'
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) 
-- 
--   Platform:
--     Host:                        Darwin 17.3.0 x86_64
--     CMake:                       3.10.1
--     CMake generator:             Unix Makefiles
--     CMake build tool:            /usr/bin/make
--     Configuration:               DEBUG
-- 
--   C/C++:
--     Built as dynamic libs?:      NO
--     C++ Compiler:                /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
--     C++ flags (Release):         -std=c++1y -fPIC  -Wall -Wno-long-long -fno-omit-frame-pointer -O3 -DNDEBUG   -DNDEBUG
--     C++ flags (Debug):           -std=c++1y -fPIC  -Wall -Wno-long-long -fno-omit-frame-pointer -g  -O0 -DDEBUG -D_DEBUG -ggdb3
--     C Compiler:                  /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
--     C flags (Release):           -fPIC  -Wall -Wno-long-long -fno-omit-frame-pointer -O3 -DNDEBUG  -DNDEBUG
--     C flags (Debug):             -fPIC  -Wall -Wno-long-long -fno-omit-frame-pointer -g  -O0 -DDEBUG -D_DEBUG -ggdb3
--     Linker flags (Release):
--     Linker flags (Debug):
-- 
--   Build Components:
-- 
--      Dependencies:               /System/Library/Frameworks/Foundation.framework;/System/Library/Frameworks/AVFoundation.framework;libuv;zlib;minizip;http_parser
--      Modules:                    archo;av;base;crypto;http;json;net;sched;socketio;stun;symple;turn;util;webrtc
--      Applications:               
--      Samples:                    
--      Tests:                      
-- 
--   Other third-party libraries:
-- 
--     Use BoringSSL:               NO
--     Use FFmpeg:                  YES
--     Use OpenCV:                  NO
--     Use WebRTC:                  YES
--     Use Poco:                    NO
--     Use wxWidgets:               NO
-- 
--     Install path:                /usr/local
-- 
--     libsourcey.h is in:          /usr/local/include/libsourcey.h
-- -----------------------------------------------------------------
-- 
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
/Users/wolfgang/libsourcey/libsourcey/src/archo/OPENSSL_INCLUDE_DIR
   used as include directory in directory /Users/wolfgang/libsourcey/libsourcey/src/archo
/Users/wolfgang/libsourcey/libsourcey/src/av/OPENSSL_INCLUDE_DIR
   used as include directory in directory /Users/wolfgang/libsourcey/libsourcey/src/av
/Users/wolfgang/libsourcey/libsourcey/src/base/OPENSSL_INCLUDE_DIR
   used as include directory in directory /Users/wolfgang/libsourcey/libsourcey/src/base
/Users/wolfgang/libsourcey/libsourcey/src/crypto/OPENSSL_INCLUDE_DIR
   used as include directory in directory /Users/wolfgang/libsourcey/libsourcey/src/crypto
/Users/wolfgang/libsourcey/libsourcey/src/http/OPENSSL_INCLUDE_DIR
   used as include directory in directory /Users/wolfgang/libsourcey/libsourcey/src/http
/Users/wolfgang/libsourcey/libsourcey/src/json/OPENSSL_INCLUDE_DIR
   used as include directory in directory /Users/wolfgang/libsourcey/libsourcey/src/json
/Users/wolfgang/libsourcey/libsourcey/src/net/OPENSSL_INCLUDE_DIR
   used as include directory in directory /Users/wolfgang/libsourcey/libsourcey/src/net
/Users/wolfgang/libsourcey/libsourcey/src/sched/OPENSSL_INCLUDE_DIR
   used as include directory in directory /Users/wolfgang/libsourcey/libsourcey/src/sched
/Users/wolfgang/libsourcey/libsourcey/src/socketio/OPENSSL_INCLUDE_DIR
   used as include directory in directory /Users/wolfgang/libsourcey/libsourcey/src/socketio
/Users/wolfgang/libsourcey/libsourcey/src/stun/OPENSSL_INCLUDE_DIR
   used as include directory in directory /Users/wolfgang/libsourcey/libsourcey/src/stun
/Users/wolfgang/libsourcey/libsourcey/src/symple/OPENSSL_INCLUDE_DIR
   used as include directory in directory /Users/wolfgang/libsourcey/libsourcey/src/symple
/Users/wolfgang/libsourcey/libsourcey/src/turn/OPENSSL_INCLUDE_DIR
   used as include directory in directory /Users/wolfgang/libsourcey/libsourcey/src/turn
/Users/wolfgang/libsourcey/libsourcey/src/util/OPENSSL_INCLUDE_DIR
   used as include directory in directory /Users/wolfgang/libsourcey/libsourcey/src/util
/Users/wolfgang/libsourcey/libsourcey/src/webrtc/OPENSSL_INCLUDE_DIR
   used as include directory in directory /Users/wolfgang/libsourcey/libsourcey/src/webrtc

-- Configuring incomplete, errors occurred!
See also "/Users/wolfgang/libsourcey/libsourcey/build/CMakeFiles/CMakeOutput.log".
See also "/Users/wolfgang/libsourcey/libsourcey/build/CMakeFiles/CMakeError.log".

Any idea? THX

zacaikido commented 6 years ago

Just saw https://github.com/sourcey/libsourcey/issues/134 which is clearly the same problem, so

  1. defined WEBRTC_INCLUDE_DIR instead of WEBRTC_INCLUDE_DIRS
  2. in libsourcey.cmake put set(WEBRTC_ROOT_DIR path/to/webrtcbuilds/out/src )

Now i get a bunch of warnings Targets may link only to libraries. CMake is dropping the item. and the make fail with :

/System/Library/Frameworks/AVFoundation.framework/Headers/AVMediaFormat.h:14:20: error: 
      typedef redefinition with different types ('NSString *' vs 'AVMediaType')
typedef NSString * AVMediaType NS_EXTENSIBLE_STRING_ENUM;
/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWriter.h:135:41: error: 
      type argument 'AVMediaType' is neither an Objective-C object nor a block
      type
/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:521:102: error: 
      nullability specifier 'nullable' cannot be applied to non-pointer type
      'AVMediaType'
/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:1715:104: error: 
      nullability specifier 'nullable' cannot be applied to non-pointer type
      'AVMediaType'
0xdeadbeef-7a1e commented 5 years ago

You are not correctly linking your libraries.