jenkins: linux-gnu, armeabi-v7, windows
Change-Id: I572b43a41344bfe438e18a2a5892b6b7be416e36
diff --git a/GreenScreen/CMakeLists.txt b/GreenScreen/CMakeLists.txt
index 574d9b1..61f9d40 100644
--- a/GreenScreen/CMakeLists.txt
+++ b/GreenScreen/CMakeLists.txt
@@ -6,35 +6,34 @@
project(${ProjectName} VERSION ${Version})
-set (DAEMON ./../../daemon)
+set (DAEMON ${PROJECT_SOURCE_DIR}/../../daemon)
set (PLUGIN_NAME GreenScreen)
set (JPL_FILE_NAME ${PLUGIN_NAME}.jpl)
set (DAEMON_SRC ${DAEMON}/src)
set (CONTRIB_PATH ${DAEMON}/contrib)
-set (DESTINATION_PATH ./../build/)
-set (PLUGINS_LIB ../lib)
+set (PLUGINS_LIB ${PROJECT_SOURCE_DIR}/../lib)
set (JPL_DIRECTORY ${PROJECT_BINARY_DIR}/jpl)
+set (LIBS_DIR ${PROJECT_SOURCE_DIR}/../contrib/Libs)
if(WIN32)
- message(OS:\ WINDOWS\ ${CMAKE_SYSTEM_PROCESSOR})
- if (NOT ${CMAKE_CL_64})
- message( FATAL_ERROR "\nUse CMake only for x64 Windows" )
- endif()
- set (CONTRIB_PLATFORM_CURT x64)
- set (CONTRIB_PLATFORM ${CONTRIB_PLATFORM_CURT}-windows)
- set (LIBRARY_FILE_NAME ${PLUGIN_NAME}.dll)
- set (LIBS_DIR $ENV{HOME}/Documents/GITHUB/Libs)
- set (OPENCV $ENV{HOME}/Documents/GITHUB/opencv/build-bash/)
- set (FFMPEG ${CONTRIB_PATH}/build/ffmpeg/Build/win32/x64)
+ message(OS:\ WINDOWS\ ${CMAKE_SYSTEM_PROCESSOR})
+ if (NOT ${CMAKE_CL_64})
+ message( FATAL_ERROR "\nUse CMake only for x64 Windows" )
+ endif()
+ set (CONTRIB_PLATFORM_CURT x64)
+ set (CONTRIB_PLATFORM ${CONTRIB_PLATFORM_CURT}-windows)
+ set (LIBRARY_FILE_NAME ${PLUGIN_NAME}.dll)
+ set (LIBS_BIN_DIR $ENV{PLUGIN_ENV})
+ set (FFMPEG ${CONTRIB_PATH}/build/ffmpeg/Build/win32/x64)
endif()
if(UNIX)
- message( FATAL_ERROR "\nUse CMake only for Windows! For linux or Android (linux host), use our bash scripts.\nPlese refer to documentation for more infos." )
- message(OS:\ LINUX\ ${CMAKE_SYSTEM_PROCESSOR})
- set (CONTRIB_PLATFORM_CURT ${CMAKE_SYSTEM_PROCESSOR})
- set (CONTRIB_PLATFORM ${CONTRIB_PLATFORM_CURT}-linux-gnu)
- set (LIBRARY_FILE_NAME lib${PLUGIN_NAME}.so)
- set (LIBS_DIR /home/${USER}/Libs)
+ message( FATAL_ERROR "\nUse CMake only for Windows! For linux or Android (linux host), use our bash scripts.\nPlese refer to documentation for more infos." )
+ message(OS:\ LINUX\ ${CMAKE_SYSTEM_PROCESSOR})
+ set (CONTRIB_PLATFORM_CURT ${CMAKE_SYSTEM_PROCESSOR})
+ set (CONTRIB_PLATFORM ${CONTRIB_PLATFORM_CURT}-linux-gnu)
+ set (LIBRARY_FILE_NAME lib${PLUGIN_NAME}.so)
+ set (LIBS_BIN_DIR /home/${USER}/Libs)
endif()
@@ -51,19 +50,19 @@
set(GPU -gpu61)
if (CPU)
- set(GPU )
- add_definitions(-DCPU)
- message(CPU\ BUILDING!)
+ set(GPU )
+ add_definitions(-DCPU)
+ message(CPU\ BUILDING!)
endif()
if (TFLITE)
- add_definitions(-DTFLITE)
- set(TENSORFLOW _tensorflowLite)
- set(model mobilenet_v2_deeplab_v3_256_myquant.tflite)
- set(modelType .tflite)
- set(preferencesFile preferences-tflite.json)
- set(TFLIB libtensorflowlite)
- message(TFLITE\ BUILDING!)
+ add_definitions(-DTFLITE)
+ set(TENSORFLOW _tensorflowLite)
+ set(model mobilenet_v2_deeplab_v3_256_myquant.tflite)
+ set(modelType .tflite)
+ set(preferencesFile preferences-tflite.json)
+ set(TFLIB libtensorflowlite)
+ message(TFLITE\ BUILDING!)
endif()
set(CMAKE_CXX_STANDARD 17)
@@ -72,106 +71,108 @@
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")
set(plugin_SRC main.cpp
- pluginInference.cpp
- pluginMediaHandler.cpp
- pluginParameters.cpp
- pluginProcessor.cpp
- TFInference.cpp
- videoSubscriber.cpp
- )
+ pluginInference.cpp
+ pluginMediaHandler.cpp
+ pluginParameters.cpp
+ pluginProcessor.cpp
+ TFInference.cpp
+ videoSubscriber.cpp
+ )
set(plugin_HDR pluginInference.h
- pluginMediaHandler.h
- pluginParameters.h
- pluginProcessor.h
- TFInference.h
- TFModels.h
- videoSubscriber.h
- ../lib/accel.h
- ../lib/framescaler.h
- ../lib/pluglog.h
- )
+ pluginMediaHandler.h
+ pluginParameters.h
+ pluginProcessor.h
+ TFInference.h
+ TFModels.h
+ videoSubscriber.h
+ ../lib/accel.h
+ ../lib/framescaler.h
+ ../lib/pluglog.h
+ )
# add the library
add_library(${ProjectName} SHARED ${plugin_SRC}
- ${plugin_HDR}
- )
+ ${plugin_HDR}
+ )
-target_include_directories(${ProjectName} PUBLIC ${PROJECT_BINARY_DIR}
- ${PROJECT_SOURCE_DIR}
- ${DAEMON_SRC}
- ${CONTRIB_PATH}
- ${CONTRIB_PATH}/${CONTRIB_PLATFORM}/include
- ${CONTRIB_PATH}/${CONTRIB_PLATFORM}/include/opencv4
- ${OPENCV}/install/include
- ${FFMPEG}/include
- ${PLUGINS_LIB}
- ${LIBS_DIR}
- ${LIBS_DIR}/${TENSORFLOW}/include
- ${LIBS_DIR}/${TENSORFLOW}/include/third_party/eigen3
- ${LIBS_DIR}/${TENSORFLOW}/include/flatbuffers
- )
if (WIN32)
-target_link_directories(${ProjectName} PUBLIC ${CONTRIB_PATH}
- ${LIBS_DIR}/${TENSORFLOW}/lib/${CONTRIB_PLATFORM}
- ${OPENCV}/install/x64/vc16/staticlib
- ${FFMPEG}/bin
- ${LIBS_DIR}
- ${CONTRIB_PATH}/${CONTRIB_PLATFORM}/lib
- ${CONTRIB_PATH}/${CONTRIB_PLATFORM}/lib/opencv4/3rdparty
- ${LIBS_DIR}/${TENSORFLOW}/lib/${CONTRIB_PLATFORM}
- )
+target_include_directories(${ProjectName} PUBLIC ${PROJECT_BINARY_DIR}
+ ${PROJECT_SOURCE_DIR}
+ ${PLUGINS_LIB}
+ ${DAEMON_SRC}
+ ${CONTRIB_PATH}
+ ${FFMPEG}/include
+ ${CONTRIB_PATH}/build/opencv/build/install/include
+ ${LIBS_DIR}/${TENSORFLOW}/include
+ ${LIBS_DIR}/${TENSORFLOW}/include/third_party/eigen3
+ ${LIBS_DIR}/${TENSORFLOW}/include/flatbuffers
+ )
+target_link_directories(${ProjectName} PUBLIC ${CONTRIB_PATH}
+ ${LIBS_BIN_DIR}/${TENSORFLOW}/lib/${CONTRIB_PLATFORM}
+ ${CONTRIB_PATH}/build/opencv/build/lib/Release
+ ${CONTRIB_PATH}/build/opencv/build/3rdparty/lib/Release
+ ${FFMPEG}/bin
+ )
target_link_libraries(${ProjectName} PUBLIC swscale avutil libpng opencv_imgcodecs411 opencv_imgproc411 opencv_core411 ${TFLIB} zlib)
endif()
if (UNIX)
-link_directories(${ProjectName} PUBLIC ${CONTRIB_PATH}
- ${LIBS_DIR}/${TENSORFLOW}/lib/${CONTRIB_PLATFORM}
- ${OPENCV}/install/x64/vc16/staticlib
- ${FFMPEG}/bin
- ${LIBS_DIR}
- ${CONTRIB_PATH}/${CONTRIB_PLATFORM}/lib
- ${CONTRIB_PATH}/${CONTRIB_PLATFORM}/lib/opencv4/3rdparty
- ${LIBS_DIR}/${TENSORFLOW}/lib/${CONTRIB_PLATFORM}
- )
+target_include_directories(${ProjectName} PUBLIC ${PROJECT_BINARY_DIR}
+ ${PROJECT_SOURCE_DIR}
+ ${PLUGINS_LIB}
+ ${DAEMON_SRC}
+ ${CONTRIB_PATH}/${CONTRIB_PLATFORM}/include
+ ${CONTRIB_PATH}/${CONTRIB_PLATFORM}/include/opencv4
+ ${LIBS_DIR}/${TENSORFLOW}/include
+ ${LIBS_DIR}/${TENSORFLOW}/include/third_party/eigen3
+ ${LIBS_DIR}/${TENSORFLOW}/include/flatbuffers
+ )
+link_directories(${ProjectName} PUBLIC ${CONTRIB_PATH}
+ ${LIBS_BIN_DIR}/${TENSORFLOW}/lib/${CONTRIB_PLATFORM}
+ ${CONTRIB_PATH}/${CONTRIB_PLATFORM}/lib
+ ${CONTRIB_PATH}/${CONTRIB_PLATFORM}/lib/opencv4/3rdparty
+ )
target_link_libraries(${ProjectName} PUBLIC swscale avutil libpng opencv_imgcodecs opencv_imgproc opencv_core ${TFLIB})
endif()
add_custom_command(
- TARGET ${ProjectName}
- PRE_BUILD
- COMMAND ${CMAKE_COMMAND} -E remove_directory -r ${JPL_DIRECTORY}
- COMMAND ${CMAKE_COMMAND} -E remove_directory -r ${JPL_DIRECTORY}/../../../build/${ProjectName}
- COMMAND ${CMAKE_COMMAND} -E make_directory ${JPL_DIRECTORY}/../../../build/${ProjectName}
- COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/data ${JPL_DIRECTORY}/data
- COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBS_DIR}/${TENSORFLOW}/lib/ ${JPL_DIRECTORY}/lib
- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/modelsSRC/${model} ${JPL_DIRECTORY}/data/models
- COMMAND ${CMAKE_COMMAND} -E rename ${JPL_DIRECTORY}/data/models/${model} ${JPL_DIRECTORY}/data/models/mModel${modelType}
- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/manifest.json ${JPL_DIRECTORY}
- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/${preferencesFile} ${JPL_DIRECTORY}/data
- COMMAND ${CMAKE_COMMAND} -E rename ${JPL_DIRECTORY}/data/${preferencesFile} ${JPL_DIRECTORY}/data/preferences.json
- COMMENT "Assembling Plugin files"
+ TARGET ${ProjectName}
+ PRE_BUILD
+ COMMAND ${CMAKE_COMMAND} -E remove_directory -r ${JPL_DIRECTORY}
+ COMMAND ${CMAKE_COMMAND} -E remove_directory -r ${JPL_DIRECTORY}/../../../build/${ProjectName}
+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/data ${JPL_DIRECTORY}/data
+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBS_BIN_DIR}/${TENSORFLOW}/lib/ ${JPL_DIRECTORY}/lib
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${JPL_DIRECTORY}/data/models
+ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/modelsSRC/${model} ${JPL_DIRECTORY}/data/models
+ COMMAND ${CMAKE_COMMAND} -E rename ${JPL_DIRECTORY}/data/models/${model} ${JPL_DIRECTORY}/data/models/mModel${modelType}
+ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/manifest.json ${JPL_DIRECTORY}
+ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/${preferencesFile} ${JPL_DIRECTORY}/data
+ COMMAND ${CMAKE_COMMAND} -E rename ${JPL_DIRECTORY}/data/${preferencesFile} ${JPL_DIRECTORY}/data/preferences.json
+ COMMENT "Assembling Plugin files"
)
if (WIN32)
- add_custom_command(
- TARGET ${ProjectName}
- POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/Release/${ProjectName}.lib ${JPL_DIRECTORY}/lib/${CONTRIB_PLATFORM}
- COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/Release/${LIBRARY_FILE_NAME} ${JPL_DIRECTORY}/lib/${CONTRIB_PLATFORM}
- COMMAND python ${PROJECT_SOURCE_DIR}/../assemblePlugin.py --plugins=GreenScreen
- COMMENT "Generating JPL archive"
- )
+ add_custom_command(
+ TARGET ${ProjectName}
+ POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${JPL_DIRECTORY}/../../../build/x64-windows/${TENSORFLOW}
+ COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/Release/${ProjectName}.lib ${JPL_DIRECTORY}/lib/${CONTRIB_PLATFORM}
+ COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/Release/${LIBRARY_FILE_NAME} ${JPL_DIRECTORY}/lib/${CONTRIB_PLATFORM}
+ COMMAND python ${PROJECT_SOURCE_DIR}/../assemble-plugin.py --plugins=GreenScreen --extraPath=${TENSORFLOW}
+ COMMENT "Generating JPL archive"
+ )
else()
- add_custom_command(
- TARGET ${ProjectName}
- POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/Release/${LIBRARY_FILE_NAME} ${JPL_DIRECTORY}/lib/${CONTRIB_PLATFORM}
- COMMAND python ${PROJECT_SOURCE_DIR}/../assemblePlugin.py --plugins=GreenScreen
- COMMENT "Generating JPL archive"
- )
+ add_custom_command(
+ TARGET ${ProjectName}
+ POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${JPL_DIRECTORY}/../../../build/x86_64-linux-gnu/${TENSORFLOW}
+ COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/Release/${LIBRARY_FILE_NAME} ${JPL_DIRECTORY}/lib/${CONTRIB_PLATFORM}
+ COMMAND python ${PROJECT_SOURCE_DIR}/../assemble-plugin.py --plugins=GreenScreen --extraPath=${TENSORFLOW}
+ COMMENT "Generating JPL archive"
+ )
endif()
\ No newline at end of file