Skip to content
Snippets Groups Projects
Commit 32ed9027 authored by Alexandre Eberhardt's avatar Alexandre Eberhardt
Browse files

Cleaning: Clean CMakeLists

Clean every worcking CMakeLists

Change-Id: I66b44921abc571ad95b5e6881ff78c2c085e84b7
parent 7c9c8ffb
Branches
Tags
No related merge requests found
...@@ -18,95 +18,76 @@ cmake_minimum_required(VERSION 3.10) ...@@ -18,95 +18,76 @@ cmake_minimum_required(VERSION 3.10)
# set the project name # set the project name
set (ProjectName AutoAnswer) set (ProjectName AutoAnswer)
set (Version 2.0.0) set (Version 2.0.0)
project(${ProjectName} VERSION ${Version}) project(${ProjectName} VERSION ${Version})
option(VIDEO_FFMPEG "If you'd like to listen to Jami's video stream or modify it, set to ON." OFF) # {FILL} # Detect OS and architecture
option(AUDIO_FFMPEG "If you'd like to listen to Jami's audio stream or modify it, set to ON." OFF) # {FILL} if(NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
option(ARCHIVE_JPL "If you'd like to end the build process before the generation of a JPL archive, set to OFF." ON) # {FILL} message(FATAL_ERROR "Unsupported architecture. Only x64 or aarch64 (arm64) is supported.")
option(NVIDIA "To disable hardware acceleration and use the graphics card for ONNX computation (useful for AI plugins), set to ON." OFF) # {FILL} else()
option(CERTIFICATION "If you'd like to certify the JPL archive created by ARCHIVE_JPL, set to ON. Requires ARCHIVE_JPL to be ON." ON) # {FILL} set (ARCH $CMAKE_SYSTEM_PROCESSOR)
endif()
set (DAEMON ${PROJECT_SOURCE_DIR}/../daemon)
set (JPL_FILE_NAME ${ProjectName}.jpl)
set (DAEMON_SRC ${DAEMON}/src)
set (CONTRIB_PATH ${DAEMON}/contrib)
set (PLUGINS_LIB ${PROJECT_SOURCE_DIR}/../lib)
set (JPL_DIRECTORY ${PROJECT_BINARY_DIR}/jpl)
set (LIBS_DIR ${PROJECT_SOURCE_DIR}/../contrib/Libs)
# Detect the operating system
if(WIN32) if(WIN32)
set(DISTRIBUTION "x64-windows") set(DISTRIBUTION "x64-windows")
elseif(ANDROID)
set(OS_NAME "ANDROID")
set(CONTRIB_PLATFORM_CURT ${ARCH})
set(CONTRIB_PLATFORM ${CONTRIB_PLATFORM_CURT}-${OS_NAME})
elseif(APPLE) elseif(APPLE)
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") set(DISTRIBUTION "${ARCH}-apple-darwin")
set(DISTRIBUTION "arm64-apple-Darwin") elseif(ANDROID)
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") set(DISTRIBUTION "android")
set(DISTRIBUTION "x86_64-apple-Darwin")
else()
message(FATAL_ERROR "Unsupported architecture. Only x64 or arm64 is supported.")
endif()
else() else()
set(DISTRIBUTION "x86_64-linux-gnu") set(DISTRIBUTION "x86_64-linux-gnu")
endif() endif()
# Detect the architecture # Paths setup
if(CMAKE_SIZEOF_VOID_P EQUAL 8) set (JAMI_PLUGINS_PATH ${PROJECT_SOURCE_DIR}/.. )
message(ARCH: x64) set (DAEMON ${JAMI_PLUGINS_PATH}/daemon)
set(ARCH "x64") set (DAEMON_SRC ${DAEMON}/src)
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") set (CONTRIB_PATH ${DAEMON}/contrib)
message(ARCH: arm64) set (PLUGINS_LIB ${JAMI_PLUGINS_PATH}/lib)
set(ARCH "arm64") set (JPL_DIRECTORY ${PROJECT_BINARY_DIR}/jpl)
else() set (JPL_FILE_NAME ${ProjectName}.jpl)
message(FATAL_ERROR "Unsupported architecture. Only x64 or aarch64 is supported.") set (SDK_PATH ${JAMI_PLUGINS_PATH}/SDK)
endif() set (PLUGIN_OUTPUT_DIR ${JPL_DIRECTORY}/lib/${DISTRIBUTION})
message(OS: ${DISTRIBUTION}) option(VIDEO_FFMPEG "If you'd like to listen to Jami's video stream or modify it, set to ON." OFF) # {FILL}
message(Building: ${ProjectName} ${Version}) option(AUDIO_FFMPEG "If you'd like to listen to Jami's audio stream or modify it, set to ON." OFF) # {FILL}
message(Build path: ${PROJECT_BINARY_DIR}) option(ARCHIVE_JPL "If you'd like to end the build process before the generation of a JPL archive, set to OFF." ON) # {FILL}
message(JPL assembling path: ${JPL_DIRECTORY}) option(NVIDIA "To disable hardware acceleration and use the graphics card for ONNX computation (useful for AI plugins), set to ON." OFF) # {FILL}
message(JPL path: ${JPL_DIRECTORY}/../../../build/${ProjectName}/${JPL_FILE_NAME}) option(CERTIFICATION "If you'd like to certify the JPL archive created by ARCHIVE_JPL, set to ON. Requires ARCHIVE_JPL to be ON." ON) # {FILL}
# This is specifically to disable hardware acceleration and do computing on the graphics card for computationally expensive AI plugins. message(Distribution:\ ${DISTRIBUTION})
if(NVIDIA) message(Building:\ ${ProjectName} ${Version})
add_definitions(-DNVIDIA) message(Build\ path:\ ${PROJECT_BINARY_DIR})
set(ONNX_DIR ${ONNX_DIR}/nvidia-gpu) message(JPL\ assembling\ path:\ ${JPL_DIRECTORY})
message(Provider:\ NVIDIA) message(JPL\ path:\ ${JAMI_PLUGINS_PATH}/build/${DISTRIBUTION}/${JPL_FILE_NAME})
set(EXTRA_PATH nvidia-gpu)
set (PREFERENCESFILENAME ${PREFERENCESFILENAME}-accel)
else()
set(ONNX_DIR ${ONNX_DIR}/cpu)
message(Provider:\ NONE)
set(EXTRA_PATH cpu)
endif()
set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True) set(CMAKE_CXX_STANDARD_REQUIRED True)
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /DMSGPACK_NO_BOOST /MT") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /DMSGPACK_NO_BOOST /MT")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /DMSGPACK_NO_BOOST /MTd") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /DMSGPACK_NO_BOOST /MTd")
set(SOURCES "") set(plugin_SRC
file(GLOB CPP_SOURCES "*.cpp") # All .cpp files in the directory of your plugin ({root}/PLUGIN_NAME) will be collected by cmake. main.cpp
list(APPEND SOURCES ${CPP_SOURCES}) BotChatHandler.cpp
BotPeerChatSubscriber.cpp
if(VIDEO_FFMPEG) # If you previously turned ON video stream capture, these will be imported. PluginPreferenceHandler.cpp
list(APPEND SOURCES "./../lib/accel.cpp") ${PLUGINS_LIB}/frameUtils.cpp
list(APPEND SOURCES "./../lib/frameUtils.cpp") ${PLUGINS_LIB}/frameFilter.cpp
endif() )
if(AUDIO_FFMPEG) # If you previously turned ON audio stream capture, these will be imported.
list(APPEND SOURCES "./../lib/frameUtils.cpp")
endif()
# list(APPEND SOURCES "./../lib/EDIT_ME.cpp") # {FILL} If you'd like to import any other .cpp files, uncomment this line, and copy it for each import. set(plugin_HDR
BotChatHandler.h
BotPeerChatSubscriber.h
PluginPreferenceHandler.h
${PLUGINS_LIB}/frameUtils.h
${PLUGINS_LIB}/pluglog.h
${PLUGINS_LIB}/frameFilter.h
)
add_library(${ProjectName} SHARED ${SOURCES}) # Create shared library
add_library(${ProjectName} SHARED ${plugin_SRC} ${plugin_HDR})
target_include_directories(${ProjectName} PUBLIC ${PROJECT_BINARY_DIR} target_include_directories(${ProjectName} PUBLIC
${PROJECT_BINARY_DIR}
${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}
${PLUGINS_LIB} ${PLUGINS_LIB}
${DAEMON_SRC} ${DAEMON_SRC}
...@@ -115,12 +96,24 @@ target_include_directories(${ProjectName} PUBLIC ${PROJECT_BINARY_DIR} ...@@ -115,12 +96,24 @@ target_include_directories(${ProjectName} PUBLIC ${PROJECT_BINARY_DIR}
${CONTRIB_PATH}/build/opendht/include ${CONTRIB_PATH}/build/opendht/include
${CONTRIB_PATH}/build/msgpack-c/include ${CONTRIB_PATH}/build/msgpack-c/include
) )
target_link_directories(${ProjectName} PUBLIC ${CONTRIB_PATH}
# Link directories and libraries
target_link_directories(${ProjectName} PUBLIC
${CONTRIB_PATH}
${CONTRIB_PATH}/build/fmt/msvc/Release ${CONTRIB_PATH}/build/fmt/msvc/Release
) )
target_link_libraries(${ProjectName} PUBLIC ) target_link_libraries(${ProjectName} PUBLIC )
# Android-specific flags
if(ANDROID)
set(CMAKE_ANDROID_ARCH_ABI arm64-v8a) # Set the desired ABI
set(CMAKE_ANDROID_STL_TYPE c++_shared) # Use C++ shared library
set(CMAKE_ANDROID_NDK_TOOLCHAIN_FILE ${CONTRIB_PATH}/build/cmake/android.toolchain.cmake)
set(CMAKE_ANDROID_STL_INCLUDE_DIR ${CONTRIB_PATH}/sysroot/usr/include)
set(CMAKE_ANDROID_STL_LIBRARIES ${CONTRIB_PATH}/sysroot/usr/lib)
endif()
if(CMAKE_CXX_FLAGS_DEBUG) if(CMAKE_CXX_FLAGS_DEBUG)
set(OUTPUT "${ProjectName}") set(OUTPUT "${ProjectName}")
set(CLANG_OPTS "-g -fsanitize=address") set(CLANG_OPTS "-g -fsanitize=address")
...@@ -142,43 +135,13 @@ add_custom_command( ...@@ -142,43 +135,13 @@ add_custom_command(
COMMENT "Assembling Plugin files" COMMENT "Assembling Plugin files"
) )
if(WIN32) # Copy shared library to jpl directory
# Windows-specific file copying
add_custom_command(
TARGET ${ProjectName}
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/${ProjectName}.lib ${JPL_DIRECTORY}/lib/${DISTRIBUTION}/${ProjectName}.lib
COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/${ProjectName}.dll ${JPL_DIRECTORY}/lib/${DISTRIBUTION}/${ProjectName}.dll
COMMENT "Copying files to jpl directory for Windows"
)
elseif(APPLE)
# macOS-specific file copying
add_custom_command(
TARGET ${ProjectName}
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/lib${ProjectName}.dylib ${JPL_DIRECTORY}/lib/${DISTRIBUTION}/lib${ProjectName}.dylib
COMMENT "Copying files to jpl directory for macOS"
)
elseif(ANDROID)
add_custom_command( add_custom_command(
TARGET ${ProjectName} TARGET ${ProjectName}
POST_BUILD POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/lib${ProjectName}.so ${JPL_DIRECTORY}/lib/${CONTRIB_PLATFORM} COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${ProjectName}> ${PLUGIN_OUTPUT_DIR}
COMMENT "Copying files to jpl directory for Android" COMMENT "Copying output file to jpl directory"
) )
else()
# Unix-like systems (Linux, etc.)
add_custom_command(
TARGET ${ProjectName}
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/lib${ProjectName}.so ${JPL_DIRECTORY}/lib/${DISTRIBUTION}/lib${ProjectName}.so
COMMENT "Copying files to jpl directory for Unix-like systems or Android"
)
endif()
if (NOT ARCHIVE_JPL)
exit()
endif()
add_custom_command( add_custom_command(
TARGET ${ProjectName} TARGET ${ProjectName}
...@@ -187,22 +150,9 @@ add_custom_command( ...@@ -187,22 +150,9 @@ add_custom_command(
COMMENT "Generating JPL archive" COMMENT "Generating JPL archive"
) )
if(NOT EXISTS "${PROJECT_SOURCE_DIR}/../.cert")
file(MAKE_DIRECTORY "${PROJECT_SOURCE_DIR}/../.cert")
endif()
if (CERTIFICATION)
add_custom_command(
TARGET ${ProjectName}
POST_BUILD
COMMAND python3 ${PROJECT_SOURCE_DIR}/../SDK/certKey.py create --subject Dev ../.cert/Dev
COMMENT "Generating developer certificate"
)
add_custom_command( add_custom_command(
TARGET ${ProjectName} TARGET ${ProjectName}
POST_BUILD POST_BUILD
COMMAND python3 ${PROJECT_SOURCE_DIR}/../SDK/certKey.py create --issuer ../.cert/Dev --subject ${ProjectName} ../.cert/${ProjectName}/${ProjectName} COMMAND python3 ${SDK_PATH}/jplManipulation.py --assemble --plugin=${ProjectName}
COMMENT "Generating plugin certificate" COMMENT "Generating JPL archive"
) )
endif()
...@@ -5,48 +5,39 @@ set (ProjectName GreenScreen) ...@@ -5,48 +5,39 @@ set (ProjectName GreenScreen)
set (Version 2.0.0) set (Version 2.0.0)
project(${ProjectName} VERSION ${Version}) project(${ProjectName} VERSION ${Version})
# Paths setup
set(DAEMON ${PROJECT_SOURCE_DIR}/../daemon)
set(DAEMON_SRC ${DAEMON}/src)
set(CONTRIB_PATH ${DAEMON}/contrib)
set(PLUGINS_LIB ${PROJECT_SOURCE_DIR}/../lib)
set(LIBS_DIR ${PROJECT_SOURCE_DIR}/../contrib/Libs)
set(JPL_DIRECTORY ${PROJECT_BINARY_DIR}/jpl)
set(JPL_FILE_NAME ${ProjectName}.jpl)
# Detect OS and architecture # Detect OS and architecture
if(NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
message(FATAL_ERROR "Unsupported architecture. Only x64 or aarch64 (arm64) is supported.")
else()
set (ARCH $CMAKE_SYSTEM_PROCESSOR)
endif()
if(WIN32) if(WIN32)
set(DISTRIBUTION "x64-windows") set(DISTRIBUTION "x64-windows")
set(FFMPEG_PATH "${CONTRIB_PATH}/build/ffmpeg/Build/windows/x64") elseif(APPLE)
set(DISTRIBUTION "${ARCH}-apple-darwin")
elseif(ANDROID) elseif(ANDROID)
set(CONTRIB_PLATFORM_CURT ${ARCH}) set(DISTRIBUTION "android")
set(CONTRIB_PLATFORM ${CONTRIB_PLATFORM_CURT}-${OS_NAME})
set(OS_NAME "ANDROID")
set(FFMPEG_PATH "${CONTRIB_PATH}/build/ffmpeg/Build/android")
else() else()
set(DISTRIBUTION "x86_64-linux-gnu") set(DISTRIBUTION "x86_64-linux-gnu")
set(FFMPEG_PATH "${CONTRIB_PATH}/build/ffmpeg/Build/unix")
endif()
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
message(ARCH: x64)
set(ARCH "x64")
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
message(ARCH: arm64)
set(ARCH "arm64")
else()
message(FATAL_ERROR "Unsupported architecture. Only x64 or aarch64 is supported.")
endif() endif()
message(OS: ${DISTRIBUTION}) # Paths setup
set (JAMI_PLUGINS_PATH ${PROJECT_SOURCE_DIR}/.. )
set(CONTRIB_PLATFORM "${ARCH}-${OS_NAME}") set (DAEMON ${JAMI_PLUGINS_PATH}/daemon)
set (DAEMON_SRC ${DAEMON}/src)
set (CONTRIB_PATH ${DAEMON}/contrib)
set (PLUGINS_LIB ${JAMI_PLUGINS_PATH}/lib)
set (JPL_DIRECTORY ${PROJECT_BINARY_DIR}/jpl)
set (JPL_FILE_NAME ${ProjectName}.jpl)
set (SDK_PATH ${JAMI_PLUGINS_PATH}/SDK)
set (PLUGIN_OUTPUT_DIR ${JPL_DIRECTORY}/lib/${DISTRIBUTION})
message(OS: ${OS_NAME} ${ARCH}) message(Distribution:\ ${DISTRIBUTION})
message(Building: ${ProjectName} ${Version}) message(Building:\ ${ProjectName} ${Version})
message(Build path: ${PROJECT_BINARY_DIR}) message(Build\ path:\ ${PROJECT_BINARY_DIR})
message(JPL assembling path: ${JPL_DIRECTORY}) message(JPL\ assembling\ path:\ ${JPL_DIRECTORY})
message(JPL path: ${JPL_DIRECTORY}/../../../build/${ProjectName}/${JPL_FILE_NAME}) message(JPL\ path:\ ${JAMI_PLUGINS_PATH}/build/${DISTRIBUTION}/${JPL_FILE_NAME})
set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True) set(CMAKE_CXX_STANDARD_REQUIRED True)
...@@ -54,9 +45,9 @@ set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /DMSGPACK_NO_BOOST /MT") ...@@ -54,9 +45,9 @@ set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /DMSGPACK_NO_BOOST /MT")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /DMSGPACK_NO_BOOST /MTd") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /DMSGPACK_NO_BOOST /MTd")
set(plugin_SRC set(plugin_SRC
main.cpp
pluginMediaHandler.cpp pluginMediaHandler.cpp
pluginProcessor.cpp pluginProcessor.cpp
main.cpp
VideoSubscriber.cpp VideoSubscriber.cpp
${PLUGINS_LIB}/accel.cpp ${PLUGINS_LIB}/accel.cpp
${PLUGINS_LIB}/frameUtils.cpp ${PLUGINS_LIB}/frameUtils.cpp
...@@ -139,30 +130,13 @@ add_custom_command( ...@@ -139,30 +130,13 @@ add_custom_command(
COMMENT "Assembling Plugin files" COMMENT "Assembling Plugin files"
) )
# Copy shared library to jpl directory
if(WIN32)
add_custom_command( add_custom_command(
TARGET ${ProjectName} TARGET ${ProjectName}
POST_BUILD POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/${ProjectName}.lib ${JPL_DIRECTORY}/lib/${DISTRIBUTION}/${ProjectName}.lib COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${ProjectName}> ${PLUGIN_OUTPUT_DIR}
COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/${ProjectName}.dll ${JPL_DIRECTORY}/lib/${DISTRIBUTION}/${ProjectName}.dll COMMENT "Copying output file to jpl directory"
COMMENT "Copying files to jpl directory for Windows"
) )
elseif(APPLE)
add_custom_command(
TARGET ${ProjectName}
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/lib${ProjectName}.dylib ${JPL_DIRECTORY}/lib/${DISTRIBUTION}/lib${ProjectName}.dylib
COMMENT "Copying files to jpl directory for macOS"
)
else()
add_custom_command(
TARGET ${ProjectName}
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/lib${ProjectName}.so ${JPL_DIRECTORY}/lib/${DISTRIBUTION}/lib${ProjectName}.so
COMMENT "Copying files to jpl directory for Unix-like systems or Android"
)
endif()
add_custom_command( add_custom_command(
TARGET ${ProjectName} TARGET ${ProjectName}
...@@ -174,6 +148,6 @@ add_custom_command( ...@@ -174,6 +148,6 @@ add_custom_command(
add_custom_command( add_custom_command(
TARGET ${ProjectName} TARGET ${ProjectName}
POST_BUILD POST_BUILD
COMMAND python3 ${PROJECT_SOURCE_DIR}/../SDK/jplManipulation.py --assemble --plugin=${ProjectName} COMMAND python3 ${SDK_PATH}/jplManipulation.py --assemble --plugin=${ProjectName}
COMMENT "Generating JPL archive" COMMENT "Generating JPL archive"
) )
...@@ -5,15 +5,6 @@ set (ProjectName HelloWorld) ...@@ -5,15 +5,6 @@ set (ProjectName HelloWorld)
set (Version 1.0.1) set (Version 1.0.1)
project(${ProjectName} VERSION ${Version}) project(${ProjectName} VERSION ${Version})
# Paths setup
set(DAEMON ${PROJECT_SOURCE_DIR}/../daemon)
set(DAEMON_SRC ${DAEMON}/src)
set(CONTRIB_PATH ${DAEMON}/contrib)
set(PLUGINS_LIB ${PROJECT_SOURCE_DIR}/../lib)
set(LIBS_DIR ${PROJECT_SOURCE_DIR}/../contrib/Libs)
set(JPL_DIRECTORY ${PROJECT_BINARY_DIR}/jpl)
set(JPL_FILE_NAME ${ProjectName}.jpl)
# Detect OS and architecture # Detect OS and architecture
if(NOT CMAKE_SIZEOF_VOID_P EQUAL 8) if(NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
message(FATAL_ERROR "Unsupported architecture. Only x64 or aarch64 (arm64) is supported.") message(FATAL_ERROR "Unsupported architecture. Only x64 or aarch64 (arm64) is supported.")
...@@ -31,11 +22,22 @@ else() ...@@ -31,11 +22,22 @@ else()
set(DISTRIBUTION "x86_64-linux-gnu") set(DISTRIBUTION "x86_64-linux-gnu")
endif() endif()
message(Distribution: ${DISTRIBUTION}) # Paths setup
message(Building: ${ProjectName} ${Version}) set (JAMI_PLUGINS_PATH ${PROJECT_SOURCE_DIR}/.. )
message(Build path: ${PROJECT_BINARY_DIR}) set (DAEMON ${JAMI_PLUGINS_PATH}/daemon)
message(JPL assembling path: ${JPL_DIRECTORY}) set (DAEMON_SRC ${DAEMON}/src)
message(JPL path: ${JPL_DIRECTORY}/../../../build/${ProjectName}/${JPL_FILE_NAME}) set (CONTRIB_PATH ${DAEMON}/contrib)
set (PLUGINS_LIB ${JAMI_PLUGINS_PATH}/lib)
set (JPL_DIRECTORY ${PROJECT_BINARY_DIR}/jpl)
set (JPL_FILE_NAME ${ProjectName}.jpl)
set (SDK_PATH ${JAMI_PLUGINS_PATH}/SDK)
set (PLUGIN_OUTPUT_DIR ${JPL_DIRECTORY}/lib/${DISTRIBUTION})
message(Distribution:\ ${DISTRIBUTION})
message(Building:\ ${ProjectName} ${Version})
message(Build\ path:\ ${PROJECT_BINARY_DIR})
message(JPL\ assembling\ path:\ ${JPL_DIRECTORY})
message(JPL\ path:\ ${JAMI_PLUGINS_PATH}/build/${DISTRIBUTION}/${JPL_FILE_NAME})
set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True) set(CMAKE_CXX_STANDARD_REQUIRED True)
...@@ -111,21 +113,6 @@ if(CMAKE_CXX_FLAGS_DEBUG) ...@@ -111,21 +113,6 @@ if(CMAKE_CXX_FLAGS_DEBUG)
set(CLANG_OPTS "-g -fsanitize=address") set(CLANG_OPTS "-g -fsanitize=address")
set(EXTRA_DEBUG_LIBRARIES "-lyaml-cpp") set(EXTRA_DEBUG_LIBRARIES "-lyaml-cpp")
set(EXTRA_DEFINES "-D__DEBUG__") set(EXTRA_DEFINES "-D__DEBUG__")
else()
if(APPLE)
add_custom_command(
TARGET ${ProjectName}
PRE_BUILD
COMMAND python3 ${PROJECT_SOURCE_DIR}/../SDK/jplManipulation.py --preassemble --plugin=${ProjectName} --arch=${ARCH}
COMMENT "Assembling Plugin files"
)
elseif(ANDROID)
add_custom_command(
TARGET ${ProjectName}
PRE_BUILD
COMMAND python3 ${PROJECT_SOURCE_DIR}/../SDK/jplManipulation.py --preassemble --plugin=${ProjectName} --distribution=${DISTRIBUTION}
COMMENT "Assembling Plugin files"
)
else() else()
add_custom_command( add_custom_command(
TARGET ${ProjectName} TARGET ${ProjectName}
...@@ -134,8 +121,6 @@ else() ...@@ -134,8 +121,6 @@ else()
COMMENT "Assembling Plugin files" COMMENT "Assembling Plugin files"
) )
endif() endif()
endif()
add_custom_command( add_custom_command(
TARGET ${ProjectName} TARGET ${ProjectName}
...@@ -144,34 +129,17 @@ add_custom_command( ...@@ -144,34 +129,17 @@ add_custom_command(
COMMENT "Assembling Plugin files" COMMENT "Assembling Plugin files"
) )
# Copy shared library to jpl directory
if(WIN32)
add_custom_command( add_custom_command(
TARGET ${ProjectName} TARGET ${ProjectName}
POST_BUILD POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/${ProjectName}.lib ${JPL_DIRECTORY}/lib/${DISTRIBUTION}/${ProjectName}.lib COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${ProjectName}> ${PLUGIN_OUTPUT_DIR}
COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/${ProjectName}.dll ${JPL_DIRECTORY}/lib/${DISTRIBUTION}/${ProjectName}.dll COMMENT "Copying output file to jpl directory"
COMMENT "Copying files to jpl directory for Windows"
) )
elseif(APPLE)
add_custom_command(
TARGET ${ProjectName}
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/lib${ProjectName}.dylib ${JPL_DIRECTORY}/lib/${DISTRIBUTION}/lib${ProjectName}.dylib
COMMENT "Copying files to jpl directory for macOS"
)
else()
add_custom_command(
TARGET ${ProjectName}
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/lib${ProjectName}.so ${JPL_DIRECTORY}/lib/${DISTRIBUTION}/lib${ProjectName}.so
COMMENT "Copying files to jpl directory for Unix-like systems or Android"
)
endif()
add_custom_command( add_custom_command(
TARGET ${ProjectName} TARGET ${ProjectName}
POST_BUILD POST_BUILD
COMMAND python3 ${PROJECT_SOURCE_DIR}/../SDK/jplManipulation.py --assemble --plugin=${ProjectName} COMMAND python3 ${SDK_PATH}/jplManipulation.py --assemble --plugin=${ProjectName}
COMMENT "Generating JPL archive" COMMENT "Generating JPL archive"
) )
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment