agsantos | d09cc6d | 2020-11-06 17:34:46 -0500 | [diff] [blame] | 1 | cmake_minimum_required(VERSION 3.10) |
| 2 | |
| 3 | # set the project name |
| 4 | set (ProjectName HelloWorld) |
agsantos | c9181b4 | 2020-11-26 12:03:04 -0500 | [diff] [blame] | 5 | set (Version 1.0.1) |
agsantos | d09cc6d | 2020-11-06 17:34:46 -0500 | [diff] [blame] | 6 | |
| 7 | project(${ProjectName} VERSION ${Version}) |
| 8 | |
| 9 | set (DAEMON ${PROJECT_SOURCE_DIR}/../../daemon) |
| 10 | set (JPL_FILE_NAME ${ProjectName}.jpl) |
| 11 | set (DAEMON_SRC ${DAEMON}/src) |
| 12 | set (CONTRIB_PATH ${DAEMON}/contrib) |
| 13 | set (PLUGINS_LIB ${PROJECT_SOURCE_DIR}/../lib) |
| 14 | set (JPL_DIRECTORY ${PROJECT_BINARY_DIR}/jpl) |
| 15 | set (LIBS_DIR ${PROJECT_SOURCE_DIR}/../contrib/Libs) |
| 16 | |
| 17 | if(WIN32) |
| 18 | message(OS:\ WINDOWS\ ${CMAKE_SYSTEM_PROCESSOR}) |
| 19 | if (NOT ${CMAKE_CL_64}) |
| 20 | message( FATAL_ERROR "\nUse CMake only for x64 Windows" ) |
| 21 | endif() |
| 22 | set (CONTRIB_PLATFORM_CURT x64) |
| 23 | set (CONTRIB_PLATFORM ${CONTRIB_PLATFORM_CURT}-windows) |
| 24 | set (LIBRARY_FILE_NAME ${ProjectName}.dll) |
| 25 | set (FFMPEG ${CONTRIB_PATH}/build/ffmpeg/Build/win32/x64) |
| 26 | else() |
| 27 | message( FATAL_ERROR "\nUse CMake only for Windows! For linux or Android (linux host), use our bash scripts." ) |
| 28 | endif() |
| 29 | |
| 30 | message(Building:\ ${ProjectName}\ ${Version}) |
| 31 | message(Build\ path:\ ${PROJECT_BINARY_DIR}) |
| 32 | message(JPL\ assembling\ path:\ ${JPL_DIRECTORY}) |
| 33 | message(JPL\ path:\ ${JPL_DIRECTORY}/../../../build/${ProjectName}/${JPL_FILE_NAME}) |
| 34 | |
| 35 | set(CMAKE_CXX_STANDARD 17) |
| 36 | set(CMAKE_CXX_STANDARD_REQUIRED True) |
| 37 | set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT") |
| 38 | set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd") |
| 39 | |
| 40 | set(plugin_SRC CoinCircleMediaHandler.cpp |
| 41 | CenterCircleVideoSubscriber.cpp |
| 42 | CenterCircleMediaHandler.cpp |
| 43 | CoinCircleVideoSubscriber.cpp |
| 44 | main.cpp |
agsantos | c9181b4 | 2020-11-26 12:03:04 -0500 | [diff] [blame] | 45 | ./../lib/accel.cpp |
| 46 | ./../lib/frameUtils.cpp |
agsantos | d09cc6d | 2020-11-06 17:34:46 -0500 | [diff] [blame] | 47 | ) |
| 48 | |
| 49 | set(plugin_HDR CoinCircleVideoSubscriber.h |
| 50 | CenterCircleVideoSubscriber.h |
| 51 | CoinCircleMediaHandler.h |
| 52 | CenterCircleMediaHandler.h |
agsantos | c9181b4 | 2020-11-26 12:03:04 -0500 | [diff] [blame] | 53 | ./../lib/accel.h |
| 54 | ./../lib/frameScaler.h |
| 55 | ./../lib/frameUtils.h |
| 56 | ./../lib/pluglog.h |
agsantos | d09cc6d | 2020-11-06 17:34:46 -0500 | [diff] [blame] | 57 | ) |
| 58 | |
| 59 | add_library(${ProjectName} SHARED ${plugin_SRC} |
| 60 | ${plugin_HDR} |
| 61 | ) |
| 62 | |
| 63 | target_include_directories(${ProjectName} PUBLIC ${PROJECT_BINARY_DIR} |
| 64 | ${PROJECT_SOURCE_DIR} |
| 65 | ${PLUGINS_LIB} |
| 66 | ${DAEMON_SRC} |
| 67 | ${CONTRIB_PATH} |
Aline Gondim Santos | ba981bb | 2022-08-02 14:28:04 -0300 | [diff] [blame^] | 68 | ${CONTRIB_PATH}/build/fmt/include |
agsantos | d09cc6d | 2020-11-06 17:34:46 -0500 | [diff] [blame] | 69 | ${FFMPEG}/include |
| 70 | ${CONTRIB_PATH}/build/opencv/build/install/include |
| 71 | ) |
| 72 | target_link_directories(${ProjectName} PUBLIC ${CONTRIB_PATH} |
| 73 | ${FFMPEG}/bin |
| 74 | ${CONTRIB_PATH}/build/opencv/build/lib/Release |
| 75 | ${CONTRIB_PATH}/build/opencv/build/3rdparty/lib/Release |
Aline Gondim Santos | ba981bb | 2022-08-02 14:28:04 -0300 | [diff] [blame^] | 76 | ${CONTRIB_PATH}/build/fmt/msvc/Release |
agsantos | d09cc6d | 2020-11-06 17:34:46 -0500 | [diff] [blame] | 77 | ) |
| 78 | |
Aline Gondim Santos | 5d01292 | 2022-08-01 11:55:05 -0300 | [diff] [blame] | 79 | target_link_libraries(${ProjectName} PUBLIC swscale avutil opencv_imgproc460 opencv_core460 zlib) |
agsantos | d09cc6d | 2020-11-06 17:34:46 -0500 | [diff] [blame] | 80 | |
| 81 | add_custom_command( |
| 82 | TARGET ${ProjectName} |
| 83 | PRE_BUILD |
agsantos | 7ad7a3a | 2021-01-19 12:57:54 -0500 | [diff] [blame] | 84 | COMMAND python ${PROJECT_SOURCE_DIR}/../SDK/jplManipulation.py --preassemble --plugin=${ProjectName} |
agsantos | d09cc6d | 2020-11-06 17:34:46 -0500 | [diff] [blame] | 85 | COMMENT "Assembling Plugin files" |
| 86 | ) |
| 87 | |
| 88 | add_custom_command( |
| 89 | TARGET ${ProjectName} |
| 90 | POST_BUILD |
| 91 | COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/Release/${ProjectName}.lib ${JPL_DIRECTORY}/lib/${CONTRIB_PLATFORM} |
| 92 | COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/Release/${LIBRARY_FILE_NAME} ${JPL_DIRECTORY}/lib/${CONTRIB_PLATFORM} |
agsantos | 7ad7a3a | 2021-01-19 12:57:54 -0500 | [diff] [blame] | 93 | COMMAND python ${PROJECT_SOURCE_DIR}/../SDK/jplManipulation.py --assemble --plugin=${ProjectName} |
agsantos | d09cc6d | 2020-11-06 17:34:46 -0500 | [diff] [blame] | 94 | COMMENT "Generating JPL archive" |
| 95 | ) |