blob: a855ea45671c50577160940d65b2e867da0a743d [file] [log] [blame]
agsantos1e7736c2020-10-28 14:39:13 -04001cmake_minimum_required(VERSION 3.10)
2
3# set the project name
4set (ProjectName PLUGINNAME)
5set (Version MANIFESTVERSION)
6
7project(${ProjectName} VERSION ${Version})
8
9set (DAEMON ${PROJECT_SOURCE_DIR}/../../daemon)
10set (JPL_FILE_NAME ${ProjectName}.jpl)
11set (DAEMON_SRC ${DAEMON}/src)
12set (CONTRIB_PATH ${DAEMON}/contrib)
13set (PLUGINS_LIB ${PROJECT_SOURCE_DIR}/../lib)
14set (JPL_DIRECTORY ${PROJECT_BINARY_DIR}/jpl)
15set (LIBS_DIR ${PROJECT_SOURCE_DIR}/../contrib/Libs)
16
17if(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." )
28endif()
29
30message(Building:\ ${ProjectName}\ ${Version})
31message(Build\ path:\ ${PROJECT_BINARY_DIR})
32message(JPL\ assembling\ path:\ ${JPL_DIRECTORY})
33message(JPL\ path:\ ${JPL_DIRECTORY}/../../../build/${ProjectName}/${JPL_FILE_NAME})
34
35set(CMAKE_CXX_STANDARD 17)
36set(CMAKE_CXX_STANDARD_REQUIRED True)
37set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT")
38set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")
39
40set(plugin_SRC ---CPPFILENAME
agsantosf499e072020-11-26 16:30:57 -050041 ---FFMPEGCPP
agsantos1e7736c2020-10-28 14:39:13 -040042 ---)
43
44set(plugin_HDR ---HFILENAME
agsantosf499e072020-11-26 16:30:57 -050045 ---FFMPEGH
46 ---./../lib/pluglog.h
agsantos1e7736c2020-10-28 14:39:13 -040047 )
48
49add_library(${ProjectName} SHARED ${plugin_SRC}
50 ${plugin_HDR}
51 )
52
53target_include_directories(${ProjectName} PUBLIC ${PROJECT_BINARY_DIR}
54 ${PROJECT_SOURCE_DIR}
55 ${PLUGINS_LIB}
56 ${DAEMON_SRC}
57 ${CONTRIB_PATH}
58 ---${FFMPEG}/include---
59 )
60target_link_directories(${ProjectName} PUBLIC ${CONTRIB_PATH}
61 ---${FFMPEG}/bin---
62 )
63
agsantosf499e072020-11-26 16:30:57 -050064target_link_libraries(${ProjectName} PUBLIC ---FFMPEGLIBS---)
agsantos1e7736c2020-10-28 14:39:13 -040065
66add_custom_command(
67 TARGET ${ProjectName}
68 PRE_BUILD
69 COMMAND python3 ${PROJECT_SOURCE_DIR}/../SDK/jplManipulation.py --preassemble --plugin=${ProjectName}
70 COMMENT "Assembling Plugin files"
71)
72
73add_custom_command(
74 TARGET ${ProjectName}
75 POST_BUILD
76 COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/Release/${ProjectName}.lib ${JPL_DIRECTORY}/lib/${CONTRIB_PLATFORM}
77 COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/Release/${LIBRARY_FILE_NAME} ${JPL_DIRECTORY}/lib/${CONTRIB_PLATFORM}
78 COMMAND python3 ${PROJECT_SOURCE_DIR}/../SDK/jplManipulation.py --assemble --plugin=${ProjectName}
79 COMMENT "Generating JPL archive"
80)