Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows and vcpkg #43

Merged
merged 11 commits into from
Dec 5, 2019
48 changes: 48 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Build

on: [push]

jobs:

LinuxCuda8:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: CMake
run: docker build . --file docker/ci.dockerfile --tag stitchem-cuda8:latest --build-arg version=8
- name: Build
run: docker run stitchem-cuda8:latest

LinuxCuda9:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: CMake
run: docker build . --file docker/ci.dockerfile --tag stitchem-cuda9:latest --build-arg version=9
- name: Build
run: docker run stitchem-cuda9:latest

LinuxCuda10:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: CMake
run: docker build . --file docker/ci.dockerfile --tag stitchem-cuda10:latest --build-arg version=10
- name: Build
run: docker run stitchem-cuda10:latest

MacOpenCL:
runs-on: macos-latest
steps:
- uses: actions/checkout@v1
- name: Deps
run: brew install bison ceres-solver CMake doxygen faac faad2 ffmpeg glew glfw glm jpeg libpng libtiff ninja opencv@3 qt yasm
- name: CMake
run: mkdir build && cd build && PATH="/usr/local/opt/bison/bin:${PATH}" cmake -DCREATE_BOX_PACKAGE=OFF -DGPU_BACKEND_CUDA=OFF -DGPU_BACKEND_OPENCL=ON -DMACPORTS=OFF -DQt5_DIR=/usr/local/opt/qt/lib/cmake/Qt5 -G Ninja ..
- name: Build
run: cd build && ninja

WindowsCuda:
runs-on: windows-latest
steps:
- uses: actions/checkout@v1
63 changes: 0 additions & 63 deletions .travis.yml

This file was deleted.

12 changes: 8 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,10 @@ endif()
# Use definitions from the cmake folder for find_package
# ----------------------------------------------------------------------------
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
if(APPLE)
list(APPEND CMAKE_PREFIX_PATH /usr/local/opt/opencv@3/share/OpenCV)
include_directories("/usr/local/include")
endif()


# ----------------------------------------------------------------------------
Expand Down Expand Up @@ -157,6 +161,10 @@ set_property(GLOBAL PROPERTY USE_FOLDERS ON)
# Platform dependent names for lib and output directories
# ----------------------------------------------------------------------------
if(WINDOWS)
set(VCPKG_PATH "${VCPKG_ROOT}\\installed")
include_directories("${VCPKG_PATH}\\${VCPKG_TARGET_TRIPLET}\\include")
list(INSERT CMAKE_MODULE_PATH 0 "${VCPKG_ROOT}/ports/openexr" "${VCPKG_ROOT}/ports/opencv")

set(VS_LIB_CUDA libvideostitch_cuda)
set(VS_LIB_OPENCL libvideostitch_opencl)
set(VS_DISCOVERY libvideostitch-gpudiscovery)
Expand Down Expand Up @@ -213,10 +221,6 @@ endif(NOT CMAKE_EXTERNAL_DEPS)
set(CMAKE_EXTERNAL_LIB "${CMAKE_EXTERNAL_DEPS}/lib")
set(CMAKE_EXTERNAL_INCLUDE "${CMAKE_EXTERNAL_DEPS}/include")

if(NOT EXISTS ${CMAKE_EXTERNAL_DEPS} AND WINDOWS)
message(FATAL_ERROR "external_deps folder not found")
endif()

# ----------------------------------------------------------------------------
# Set binary directory structure manually
# to get bin/Debug/CorePlugins/libav.dylib instead of bin/CorePlugins/Debug/libav.dylib
Expand Down
8 changes: 5 additions & 3 deletions IO/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -103,8 +103,6 @@ endforeach(OUTPUTCONFIG CMAKE_CONFIGURATION_TYPES)
option(DISABLE_RTMP "Create RTMP I/O plugin" OFF)
option(DISABLE_PORTAUDIO "Create Portaudio I/O plugin" ${CMAKE_CROSSCOMPILING})

add_subdirectory(src/rtmp)

if(LINUX OR ANDROID)
add_subdirectory(src/v4l2)
endif(LINUX OR ANDROID)
Expand All @@ -114,12 +112,16 @@ if(LINUX OR WINDOWS)
endif(LINUX OR WINDOWS)

if(WINDOWS)
add_subdirectory(src/aja)
find_library(libmfxhw64 libmfx_vs2015 HINTS "${INTEL_MEDIA_SDK_PATH}\\lib\\x64" REQUIRED)
include_directories("${INTEL_MEDIA_SDK_PATH}\\include")
include_directories("${INTEL_MEDIA_SDK_PATH}\\igfx_s3dcontrol\\include")
#add_subdirectory(src/aja)
add_subdirectory(src/decklink)
add_subdirectory(src/magewell)
add_subdirectory(src/magewellpro)
add_subdirectory(src/ximea_2)
endif(WINDOWS)
add_subdirectory(src/rtmp)

# ----------------------------------------------------------------------------

Expand Down
6 changes: 2 additions & 4 deletions IO/src/av/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ function(setup_av_plugin PLUGIN_NAME BACKEND_NAME USE_CUDA)
target_include_directories(${PLUGIN_NAME} PRIVATE include)
target_include_directories(${PLUGIN_NAME} PRIVATE ../common/include)
target_include_directories(${PLUGIN_NAME} PRIVATE ../common/format/include)
target_include_directories(${PLUGIN_NAME} PRIVATE ${CMAKE_EXTERNAL_DEPS}/include/Intel_Media_SDK)
target_include_directories(${PLUGIN_NAME} PRIVATE "${INTEL_MEDIA_SDK_PATH}\\include")

if(USE_CUDA)
target_include_directories(${PLUGIN_NAME} PRIVATE ${CUDA_TOOLKIT_TARGET_DIR}/include)
Expand All @@ -58,15 +58,13 @@ function(setup_av_plugin PLUGIN_NAME BACKEND_NAME USE_CUDA)

set_property(TARGET ${PLUGIN_NAME} PROPERTY CXX_STANDARD 14)

set(FFMPEG_INCLUDE_PATH ${CMAKE_EXTERNAL_DEPS}/include/ffmpeg)
if(MACPORTS)
set(FFMPEG_INCLUDE_PATH /opt/local/include)
target_include_directories(${PLUGIN_NAME} SYSTEM PRIVATE ${FFMPEG_INCLUDE_PATH})
else()
set(FFMPEG_INCLUDE_PATH /usr/local/include)
endif()

target_include_directories(${PLUGIN_NAME} SYSTEM PRIVATE ${FFMPEG_INCLUDE_PATH})
w-m marked this conversation as resolved.
Show resolved Hide resolved

if(LINUX OR APPLE OR ANDROID)
# VSA-5342: we're using functionality that has been deprecated in ffmpeg 3
target_compile_options(${PLUGIN_NAME} PRIVATE -Wno-deprecated-declarations)
Expand Down
2 changes: 1 addition & 1 deletion IO/src/av/include/baseAllocator.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Copyright(c) 2008-2013 Intel Corporation. All Rights Reserved.
#include <string.h>
#include <functional>

#include "mfx/mfxvideo.h"
#include "mfxvideo.h"

struct mfxAllocatorParams {
virtual ~mfxAllocatorParams(){};
Expand Down
2 changes: 1 addition & 1 deletion IO/src/av/include/hwDevice.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Copyright(c) 2013 Intel Corporation. All Rights Reserved.

#pragma once

#include "mfx/mfxvideo.h"
#include "mfxvideo.h"

#if defined(WIN32) || defined(WIN64)
#ifndef D3D_SURFACES_SUPPORT
Expand Down
9 changes: 3 additions & 6 deletions IO/src/common/format/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,7 @@ function(setup_format BACKEND_NAME USE_CUDA)
include_lib_vs_headers(${LIST_NAME})
target_include_directories(${LIST_NAME} PRIVATE include)
target_include_directories(${LIST_NAME} PRIVATE ../include)
set(FFMPEG_INCLUDE_PATH ${CMAKE_EXTERNAL_DEPS}/include/ffmpeg)

target_include_directories(${LIST_NAME} PRIVATE ${FFMPEG_INCLUDE_PATH})
if(LINUX OR APPLE)
# VSA-5342: we're using functionality that has been deprecated in ffmpeg 3
target_compile_options(${LIST_NAME} PRIVATE -Wno-deprecated-declarations)
Expand All @@ -52,10 +50,9 @@ function(setup_format BACKEND_NAME USE_CUDA)
endif()

if(WINDOWS)
set(FFMPEG_LIB_PATH ${CMAKE_EXTERNAL_DEPS}/lib/ffmpeg)
find_library(FFMPEG_avcodec NAMES avcodec PATHS ${FFMPEG_LIB_PATH} NO_DEFAULT_PATH)
find_library(FFMPEG_avformat NAMES avformat PATHS ${FFMPEG_LIB_PATH} NO_DEFAULT_PATH)
find_library(FFMPEG_avutil NAMES avutil PATHS ${FFMPEG_LIB_PATH} NO_DEFAULT_PATH)
find_library(FFMPEG_avcodec NAMES avcodec REQUIRED)
find_library(FFMPEG_avformat NAMES avformat REQUIRED)
find_library(FFMPEG_avutil NAMES avutil REQUIRED)
endif(WINDOWS)

if(APPLE)
Expand Down
2 changes: 1 addition & 1 deletion IO/src/decklink/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ set(PLUGIN_NAME decklink)

add_custom_command(
OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/include/DeckLinkAPI_h.h" "${CMAKE_CURRENT_SOURCE_DIR}/DeckLinkAPI_i.c"
COMMAND midl.exe /D _DEBUG /W1 /nologo /char signed /env x64 /iid ${CMAKE_CURRENT_SOURCE_DIR}/DeckLinkAPI_i.c /h "${CMAKE_CURRENT_SOURCE_DIR}/include/DeckLinkAPI_h.h" /tlb "${VS_VAHANA_PLUGIN_DIR}/decklink.tlb" "${CMAKE_EXTERNAL_DEPS}/include/decklink/DeckLinkAPI.idl"
COMMAND midl.exe /D _DEBUG /W1 /nologo /char signed /env x64 /iid ${CMAKE_CURRENT_SOURCE_DIR}/DeckLinkAPI_i.c /h "${CMAKE_CURRENT_SOURCE_DIR}/DeckLinkAPI_h.h" /tlb "${VS_VAHANA_PLUGIN_DIR}/decklink.tlb" "${DECKLINK_PATH}\\DeckLinkAPI.idl"
)

set(SOURCE_FILES
Expand Down
2 changes: 1 addition & 1 deletion IO/src/decklink/src/decklink_writer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ DeckLinkWriter* DeckLinkWriter::create(const Ptv::Value* config, const std::stri
}
std::shared_ptr<IDeckLinkConfiguration> configuration(tempConfiguration,
VideoStitch::DeckLink::getDefaultDeleter());
configuration->SetFlag(bmdDeckLinkConfigUse1080pNotPsF, true);
configuration->SetFlag(bmdDeckLinkConfigCapture1080pAsPsF, false);

// Retrieve the configuration for duplex mode, could be different from the previous configuration object
// We need it before to enable video output
Expand Down
4 changes: 2 additions & 2 deletions IO/src/exr/src/export.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@
#include "libvideostitch/ptv.hpp"
#include <ostream>

#ifdef _MSC_VER
#ifdef DELAY_LOAD_ENABLED
SET_DELAY_LOAD_HOOK
#endif // _MSC_VER
#endif // DELAY_LOAD_ENABLED

/** \name Services for reader plugin. */
//\{
Expand Down
7 changes: 2 additions & 5 deletions IO/src/jpg/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,7 @@ elseif(APPLE)
find_library(JPEG NAMES jpeg PATHS /usr/local/lib)
endif()
else()
find_library(TURBO_JPEG NAMES turbojpeg turbojpeg.0 PATHS "${CMAKE_EXTERNAL_DEPS}/lib/libjpeg-turbo" NO_DEFAULT_PATH)
find_library(JPEG NAMES jpeg jpeg.62 PATHS "${CMAKE_EXTERNAL_DEPS}/lib/libjpeg-turbo" NO_DEFAULT_PATH)
find_package(JPEG)
endif()

if(APPLE)
Expand All @@ -47,13 +46,11 @@ if(APPLE)
else()
target_include_directories(${PLUGIN_NAME} SYSTEM PRIVATE /usr/local/include)
endif()
elseif(WINDOWS)
target_include_directories(${PLUGIN_NAME} SYSTEM PRIVATE "${CMAKE_EXTERNAL_DEPS}/include/libjpeg-turbo")
endif()

if(APPLE OR LINUX)
target_link_libraries(${PLUGIN_NAME} PRIVATE ${JPEG} ${VS_DISCOVERY})
else()
target_link_libraries(${PLUGIN_NAME} PRIVATE ${TURBO_JPEG} ${JPEG} ${VS_DISCOVERY})
target_link_libraries(${PLUGIN_NAME} PRIVATE ${JPEG_LIBRARIES} ${VS_DISCOVERY})
endif()
link_target_to_libvideostitch(${PLUGIN_NAME})
9 changes: 4 additions & 5 deletions IO/src/magewell/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,12 @@ include_lib_vs_headers(${PLUGIN_NAME})
include_discovery_vs_headers(${PLUGIN_NAME})

target_include_directories(${PLUGIN_NAME} PRIVATE ../common/include)
target_include_directories(${PLUGIN_NAME} PRIVATE "${CMAKE_EXTERNAL_DEPS}/include/magewell")
target_include_directories(${PLUGIN_NAME} PRIVATE "${MAGEWELL_PATH}\\SDKv2\\Include")

set_property(TARGET ${PLUGIN_NAME} PROPERTY CXX_STANDARD 14)

find_debug_and_optimized_library(MAGEWELL_STREAM2 "magewell" "LibXIStream2d" "magewell" "LibXIStream2")
find_debug_and_optimized_library(MAGEWELL_PROPERTY "magewell" "LibXIPropertyd" "magewell" "LibXIProperty")
find_library(MAGEWELL_STREAM2 "LibXIStream2" HINTS "${MAGEWELL_PATH}\\SDKv2\\Lib\\x64\\Release")
find_library(MAGEWELL_PROPERTY "LibXIProperty" HINTS "${MAGEWELL_PATH}\\SDKv2\\Lib\\x64\\Release")
target_link_libraries(${PLUGIN_NAME} PRIVATE ${VS_DISCOVERY} ${MAGEWELL_STREAM2} ${MAGEWELL_PROPERTY})
link_target_to_libvideostitch(${PLUGIN_NAME})
target_compile_definitions(${PLUGIN_NAME} PRIVATE _UNICODE UNICODE)

target_compile_definitions(${PLUGIN_NAME} PRIVATE _UNICODE UNICODE)
7 changes: 3 additions & 4 deletions IO/src/magewellpro/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,11 @@ include_lib_vs_headers(${PLUGIN_NAME})
include_discovery_vs_headers(${PLUGIN_NAME})

target_include_directories(${PLUGIN_NAME} PRIVATE ../common/include)
target_include_directories(${PLUGIN_NAME} PRIVATE "${CMAKE_EXTERNAL_DEPS}/include/magewellPro")
target_include_directories(${PLUGIN_NAME} PRIVATE "${MAGEWELL_PATH}\\SDKv3\\Include")

set_property(TARGET ${PLUGIN_NAME} PROPERTY CXX_STANDARD 14)

find_debug_and_optimized_library(MAGEWELL_DEVICE "magewellPro" "LibMWCaptured" "magewellPro" "LibMWCapture")
find_library(MAGEWELL_DEVICE "LibMWCapture" HINTS "${MAGEWELL_PATH}\\SDKv3\\Lib\\x64")
target_link_libraries(${PLUGIN_NAME} PRIVATE ${MAGEWELL_DEVICE} ${VS_DISCOVERY})
link_target_to_libvideostitch(${PLUGIN_NAME})
target_compile_definitions(${PLUGIN_NAME} PRIVATE _UNICODE UNICODE)

target_compile_definitions(${PLUGIN_NAME} PRIVATE _UNICODE UNICODE)
4 changes: 1 addition & 3 deletions IO/src/png/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,7 @@ target_include_directories(${PLUGIN_NAME} PRIVATE ../common/include)

if(APPLE)
target_include_directories(${PLUGIN_NAME} PRIVATE "/opt/local/include")
else(APPLE)
target_include_directories(${PLUGIN_NAME} PRIVATE "${CMAKE_EXTERNAL_DEPS}/include/libpng")
endif(APPLE)
endif()

set_property(TARGET ${PLUGIN_NAME} PROPERTY CXX_STANDARD 14)
target_link_libraries(${PLUGIN_NAME} PRIVATE ${PNG_LIBRARY} ${VS_DISCOVERY})
Expand Down
10 changes: 2 additions & 8 deletions IO/src/portaudio/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,20 +25,14 @@ include_discovery_vs_headers(${PLUGIN_NAME})

target_include_directories(${PLUGIN_NAME} PRIVATE include)
target_include_directories(${PLUGIN_NAME} PRIVATE ../common/include)
target_include_directories(${PLUGIN_NAME} PRIVATE ${CMAKE_EXTERNAL_DEPS}/include/portaudio)
set_property(TARGET ${PLUGIN_NAME} PROPERTY CXX_STANDARD 14)

if(WINDOWS)
find_library(PORTAUDIO NAMES "portaudio_x64" PATHS ${CMAKE_EXTERNAL_DEPS}/lib/portaudio REQUIRED)
else()
find_library(PORTAUDIO NAMES "portaudio" REQUIRED)
endif()
find_library(PORTAUDIO NAMES "portaudio" REQUIRED)

# FIXME: portAudioReader.cpp
if(COMPILER_GCC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-variable")
endif()

target_link_libraries(${PLUGIN_NAME} PRIVATE ${PORTAUDIO} ${VS_DISCOVERY})
link_target_to_libvideostitch(${PLUGIN_NAME})

link_target_to_libvideostitch(${PLUGIN_NAME})
Loading