Skip to content

Commit de1327c

Browse files
authored
Fix Windows ZeroMQ for real (#357)
* Rework FindZeroMQ again for Windows * Let Windows auto-detect ZeroMQ path
1 parent c0e76e7 commit de1327c

File tree

3 files changed

+23
-35
lines changed

3 files changed

+23
-35
lines changed

.gitlab-ci.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@ windows-builder-x64:
7070
- Expand-Archive -Path artifacts.zip -DestinationPath .
7171
- $env:LIBOPENSHOT_AUDIO_DIR = "$CI_PROJECT_DIR\build\install-x64"
7272
- $env:UNITTEST_DIR = "C:\msys64\usr"
73-
- $env:ZMQDIR = "C:\msys64\usr"
7473
- $env:RESVGDIR = "C:\msys64\usr"
7574
- $env:Path = "C:\msys64\mingw64\bin;C:\msys64\mingw64\lib;C:\msys64\usr\lib\cmake\UnitTest++;C:\msys64\home\jonathan\depot_tools;C:\msys64\usr;C:\msys64\usr\lib;" + $env:Path;
7675
- New-Item -ItemType Directory -Force -Path build
@@ -101,7 +100,6 @@ windows-builder-x86:
101100
- $env:LIBOPENSHOT_AUDIO_DIR = "$CI_PROJECT_DIR\build\install-x86"
102101
- $env:UNITTEST_DIR = "C:\msys32\usr"
103102
- $env:RESVGDIR = "C:\msys32\usr"
104-
- $env:ZMQDIR = "C:\msys32\usr"
105103
- $env:Path = "C:\msys32\mingw32\bin;C:\msys32\mingw32\lib;C:\msys32\usr\lib\cmake\UnitTest++;C:\msys32\home\jonathan\depot_tools;C:\msys32\usr;C:\msys32\usr\lib;" + $env:Path;
106104
- New-Item -ItemType Directory -Force -Path build
107105
- New-Item -ItemType Directory -Force -Path build\install-x86\python

cmake/Modules/FindZeroMQ.cmake

Lines changed: 21 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -3,41 +3,32 @@ find_package(PkgConfig)
33
pkg_check_modules(PC_LIBZMQ QUIET libzmq)
44

55
set(ZeroMQ_VERSION ${PC_LIBZMQ_VERSION})
6-
find_path(ZeroMQ_INCLUDE_DIR zmq.h PATHS ${PC_LIBZMQ_INCLUDE_DIRS} $ENV{ZMQDIR})
76

8-
find_library(ZeroMQ_LIBRARY NAMES libzmq.so libzmq.dylib libzmq.dll
9-
PATHS ${PC_LIBZMQ_LIBDIR} ${PC_LIBZMQ_LIBRARY_DIRS} $ENV{ZMQDIR})
10-
find_library(ZeroMQ_STATIC_LIBRARY NAMES libzmq-static.a libzmq.a libzmq.dll.a
11-
PATHS ${PC_LIBZMQ_LIBDIR} ${PC_LIBZMQ_LIBRARY_DIRS} $ENV{ZMQDIR})
7+
find_path(ZeroMQ_INCLUDE_DIR zmq.h
8+
PATHS ${ZeroMQ_DIR}/include
9+
${PC_LIBZMQ_INCLUDE_DIRS})
1210

13-
if(ZeroMQ_LIBRARY OR ZeroMQ_STATIC_LIBRARY)
14-
set(ZeroMQ_FOUND ON)
15-
endif()
16-
17-
if (TARGET libzmq)
18-
# avoid errors defining targets twice
19-
return()
20-
endif()
21-
22-
set(ZeroMQ_INCLUDE_DIRS ${ZeroMQ_INCLUDE_DIR})
23-
list(APPEND ZeroMQ_INCLUDE_DIRS ${PC_LIBZMQ_INCLUDE_DIRS})
24-
list(REMOVE_DUPLICATES ZeroMQ_INCLUDE_DIRS)
11+
find_library(ZeroMQ_LIBRARY
12+
NAMES zmq
13+
PATHS ${ZeroMQ_DIR}/lib
14+
${PC_LIBZMQ_LIBDIR}
15+
${PC_LIBZMQ_LIBRARY_DIRS})
2516

2617
if(ZeroMQ_LIBRARY)
27-
add_library(libzmq SHARED IMPORTED)
28-
set_property(TARGET libzmq PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${ZeroMQ_INCLUDE_DIRS})
29-
set_property(TARGET libzmq PROPERTY IMPORTED_LOCATION ${ZeroMQ_LIBRARY})
18+
set(ZeroMQ_FOUND ON)
3019
endif()
3120

32-
if(ZeroMQ_LIBRARY_STATIC)
33-
add_library(libzmq-static STATIC IMPORTED ${ZeroMQ_INCLUDE_DIRS})
34-
set_property(TARGET libzmq-static PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${ZeroMQ_INCLUDE_DIRS})
35-
set_property(TARGET libzmq-static PROPERTY IMPORTED_LOCATION ${ZeroMQ_STATIC_LIBRARY})
21+
set ( ZeroMQ_LIBRARIES ${ZeroMQ_LIBRARY} )
22+
set ( ZeroMQ_INCLUDE_DIRS ${ZeroMQ_INCLUDE_DIR} )
23+
24+
if(NOT TARGET libzmq)
25+
add_library(libzmq UNKNOWN IMPORTED)
26+
set_target_properties(libzmq PROPERTIES
27+
IMPORTED_LOCATION ${ZeroMQ_LIBRARIES}
28+
INTERFACE_INCLUDE_DIRECTORIES ${ZeroMQ_INCLUDE_DIRS})
3629
endif()
3730

38-
include(FindPackageHandleStandardArgs)
39-
find_package_handle_standard_args(ZeroMQ
40-
REQUIRED_VARS
41-
ZeroMQ_LIBRARY ZeroMQ_INCLUDE_DIRS
42-
VERSION_VAR
43-
ZeroMQ_VERSION)
31+
include ( FindPackageHandleStandardArgs )
32+
# handle the QUIETLY and REQUIRED arguments and set ZMQ_FOUND to TRUE
33+
# if all listed variables are TRUE
34+
find_package_handle_standard_args ( ZeroMQ DEFAULT_MSG ZeroMQ_LIBRARIES ZeroMQ_INCLUDE_DIRS )

src/CMakeLists.txt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -330,11 +330,9 @@ find_package(ZeroMQ REQUIRED) # Creates libzmq target
330330
# others (Ubuntu) bundle them in with libzmq itself
331331
find_package(cppzmq QUIET) # Creates cppzmq target
332332

333-
# Link ZeroMQ (shared or static, whichever's found)
333+
# Link ZeroMQ library
334334
if (TARGET libzmq)
335335
target_link_libraries(openshot PUBLIC libzmq)
336-
elseif (TARGET libzmq-static)
337-
target_link_libraries(openshot PRIVATE libzmq-static)
338336
endif()
339337
# Include cppzmq headers, if not bundled into libzmq
340338
if (TARGET cppzmq)
@@ -373,6 +371,7 @@ target_link_libraries(openshot PUBLIC ${REQUIRED_LIBRARIES})
373371
# Pick up parameters from OpenMP target and propagate
374372
target_link_libraries(openshot PUBLIC OpenMP::OpenMP_CXX)
375373

374+
376375
############### CLI EXECUTABLES ################
377376
# Create test executable
378377
add_executable(openshot-example examples/Example.cpp)

0 commit comments

Comments
 (0)