From 32ed9027e1251c8fa780cb58e1348f4b81541383 Mon Sep 17 00:00:00 2001 From: aeberhardt <alexandre.eberhardt@savoirfairelinux.com> Date: Thu, 19 Sep 2024 09:03:50 -0400 Subject: [PATCH] Cleaning: Clean CMakeLists Clean every worcking CMakeLists Change-Id: I66b44921abc571ad95b5e6881ff78c2c085e84b7 --- AutoAnswer/CMakeLists.txt | 234 +++++++++++++++---------------------- GreenScreen/CMakeLists.txt | 96 ++++++--------- HelloWorld/CMakeLists.txt | 82 ++++--------- 3 files changed, 152 insertions(+), 260 deletions(-) diff --git a/AutoAnswer/CMakeLists.txt b/AutoAnswer/CMakeLists.txt index 75876bb..c3d5465 100644 --- a/AutoAnswer/CMakeLists.txt +++ b/AutoAnswer/CMakeLists.txt @@ -18,121 +18,114 @@ cmake_minimum_required(VERSION 3.10) # set the project name set (ProjectName AutoAnswer) set (Version 2.0.0) - 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} -option(AUDIO_FFMPEG "If you'd like to listen to Jami's audio stream or modify it, set to ON." OFF) # {FILL} -option(ARCHIVE_JPL "If you'd like to end the build process before the generation of a JPL archive, set to OFF." ON) # {FILL} -option(NVIDIA "To disable hardware acceleration and use the graphics card for ONNX computation (useful for AI plugins), set to ON." OFF) # {FILL} -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 (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 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() -# Detect the operating system if(WIN32) 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) - if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") - set(DISTRIBUTION "arm64-apple-Darwin") - elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") - set(DISTRIBUTION "x86_64-apple-Darwin") - else() - message(FATAL_ERROR "Unsupported architecture. Only x64 or arm64 is supported.") - endif() + set(DISTRIBUTION "${ARCH}-apple-darwin") +elseif(ANDROID) + set(DISTRIBUTION "android") else() set(DISTRIBUTION "x86_64-linux-gnu") endif() -# Detect the architecture -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() +# Paths setup +set (JAMI_PLUGINS_PATH ${PROJECT_SOURCE_DIR}/.. ) +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: ${DISTRIBUTION}) -message(Building: ${ProjectName} ${Version}) -message(Build path: ${PROJECT_BINARY_DIR}) -message(JPL assembling path: ${JPL_DIRECTORY}) -message(JPL path: ${JPL_DIRECTORY}/../../../build/${ProjectName}/${JPL_FILE_NAME}) - -# This is specifically to disable hardware acceleration and do computing on the graphics card for computationally expensive AI plugins. -if(NVIDIA) -add_definitions(-DNVIDIA) -set(ONNX_DIR ${ONNX_DIR}/nvidia-gpu) -message(Provider:\ NVIDIA) -set(EXTRA_PATH nvidia-gpu) -set (PREFERENCESFILENAME ${PREFERENCESFILENAME}-accel) -else() -set(ONNX_DIR ${ONNX_DIR}/cpu) -message(Provider:\ NONE) -set(EXTRA_PATH cpu) -endif() +option(VIDEO_FFMPEG "If you'd like to listen to Jami's video stream or modify it, set to ON." OFF) # {FILL} +option(AUDIO_FFMPEG "If you'd like to listen to Jami's audio stream or modify it, set to ON." OFF) # {FILL} +option(ARCHIVE_JPL "If you'd like to end the build process before the generation of a JPL archive, set to OFF." ON) # {FILL} +option(NVIDIA "To disable hardware acceleration and use the graphics card for ONNX computation (useful for AI plugins), set to ON." OFF) # {FILL} +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} + +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_REQUIRED True) 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(SOURCES "") -file(GLOB CPP_SOURCES "*.cpp") # All .cpp files in the directory of your plugin ({root}/PLUGIN_NAME) will be collected by cmake. -list(APPEND SOURCES ${CPP_SOURCES}) - -if(VIDEO_FFMPEG) # If you previously turned ON video stream capture, these will be imported. - list(APPEND SOURCES "./../lib/accel.cpp") - list(APPEND SOURCES "./../lib/frameUtils.cpp") -endif() - -if(AUDIO_FFMPEG) # If you previously turned ON audio stream capture, these will be imported. - list(APPEND SOURCES "./../lib/frameUtils.cpp") -endif() +set(plugin_SRC + main.cpp + BotChatHandler.cpp + BotPeerChatSubscriber.cpp + PluginPreferenceHandler.cpp + ${PLUGINS_LIB}/frameUtils.cpp + ${PLUGINS_LIB}/frameFilter.cpp +) -# 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} + ${PROJECT_SOURCE_DIR} + ${PLUGINS_LIB} + ${DAEMON_SRC} + ${CONTRIB_PATH} + ${CONTRIB_PATH}/build/fmt/include + ${CONTRIB_PATH}/build/opendht/include + ${CONTRIB_PATH}/build/msgpack-c/include +) -target_include_directories(${ProjectName} PUBLIC ${PROJECT_BINARY_DIR} - ${PROJECT_SOURCE_DIR} - ${PLUGINS_LIB} - ${DAEMON_SRC} - ${CONTRIB_PATH} - ${CONTRIB_PATH}/build/fmt/include - ${CONTRIB_PATH}/build/opendht/include - ${CONTRIB_PATH}/build/msgpack-c/include - ) -target_link_directories(${ProjectName} PUBLIC ${CONTRIB_PATH} - ${CONTRIB_PATH}/build/fmt/msvc/Release - ) +# Link directories and libraries +target_link_directories(${ProjectName} PUBLIC + ${CONTRIB_PATH} + ${CONTRIB_PATH}/build/fmt/msvc/Release +) 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) - set(OUTPUT "${ProjectName}") - set(CLANG_OPTS "-g -fsanitize=address") - set(EXTRA_DEBUG_LIBRARIES "-lyaml-cpp") - set(EXTRA_DEFINES "-D__DEBUG__") + set(OUTPUT "${ProjectName}") + set(CLANG_OPTS "-g -fsanitize=address") + set(EXTRA_DEBUG_LIBRARIES "-lyaml-cpp") + set(EXTRA_DEFINES "-D__DEBUG__") else() - add_custom_command( - TARGET ${ProjectName} - PRE_BUILD - COMMAND python3 ${PROJECT_SOURCE_DIR}/../SDK/jplManipulation.py --preassemble --plugin=${ProjectName} - COMMENT "Assembling Plugin files" - ) + add_custom_command( + TARGET ${ProjectName} + PRE_BUILD + COMMAND python3 ${PROJECT_SOURCE_DIR}/../SDK/jplManipulation.py --preassemble --plugin=${ProjectName} + COMMENT "Assembling Plugin files" + ) endif() add_custom_command( @@ -142,43 +135,13 @@ add_custom_command( COMMENT "Assembling Plugin files" ) -if(WIN32) -# Windows-specific file copying +# Copy shared library to jpl directory 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" + COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${ProjectName}> ${PLUGIN_OUTPUT_DIR} + COMMENT "Copying output file to jpl directory" ) -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( - TARGET ${ProjectName} - POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/lib${ProjectName}.so ${JPL_DIRECTORY}/lib/${CONTRIB_PLATFORM} - COMMENT "Copying files to jpl directory for Android" - ) -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( TARGET ${ProjectName} @@ -187,22 +150,9 @@ add_custom_command( 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( - TARGET ${ProjectName} - POST_BUILD - COMMAND python3 ${PROJECT_SOURCE_DIR}/../SDK/certKey.py create --issuer ../.cert/Dev --subject ${ProjectName} ../.cert/${ProjectName}/${ProjectName} - COMMENT "Generating plugin certificate" - ) -endif() +add_custom_command( + TARGET ${ProjectName} + POST_BUILD + COMMAND python3 ${SDK_PATH}/jplManipulation.py --assemble --plugin=${ProjectName} + COMMENT "Generating JPL archive" +) diff --git a/GreenScreen/CMakeLists.txt b/GreenScreen/CMakeLists.txt index 9a24392..b4de40d 100644 --- a/GreenScreen/CMakeLists.txt +++ b/GreenScreen/CMakeLists.txt @@ -5,48 +5,39 @@ set (ProjectName GreenScreen) set (Version 2.0.0) 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 +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) set(DISTRIBUTION "x64-windows") - set(FFMPEG_PATH "${CONTRIB_PATH}/build/ffmpeg/Build/windows/x64") +elseif(APPLE) + set(DISTRIBUTION "${ARCH}-apple-darwin") elseif(ANDROID) - set(CONTRIB_PLATFORM_CURT ${ARCH}) - set(CONTRIB_PLATFORM ${CONTRIB_PLATFORM_CURT}-${OS_NAME}) - set(OS_NAME "ANDROID") - set(FFMPEG_PATH "${CONTRIB_PATH}/build/ffmpeg/Build/android") + set(DISTRIBUTION "android") else() 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() -message(OS: ${DISTRIBUTION}) - -set(CONTRIB_PLATFORM "${ARCH}-${OS_NAME}") - -message(OS: ${OS_NAME} ${ARCH}) -message(Building: ${ProjectName} ${Version}) -message(Build path: ${PROJECT_BINARY_DIR}) -message(JPL assembling path: ${JPL_DIRECTORY}) -message(JPL path: ${JPL_DIRECTORY}/../../../build/${ProjectName}/${JPL_FILE_NAME}) +# Paths setup +set (JAMI_PLUGINS_PATH ${PROJECT_SOURCE_DIR}/.. ) +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(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_REQUIRED True) @@ -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(plugin_SRC + main.cpp pluginMediaHandler.cpp pluginProcessor.cpp - main.cpp VideoSubscriber.cpp ${PLUGINS_LIB}/accel.cpp ${PLUGINS_LIB}/frameUtils.cpp @@ -139,30 +130,13 @@ add_custom_command( COMMENT "Assembling Plugin files" ) - -if(WIN32) - 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) - 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() +# Copy shared library to jpl directory +add_custom_command( + TARGET ${ProjectName} + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${ProjectName}> ${PLUGIN_OUTPUT_DIR} + COMMENT "Copying output file to jpl directory" +) add_custom_command( TARGET ${ProjectName} @@ -174,6 +148,6 @@ add_custom_command( add_custom_command( TARGET ${ProjectName} 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" -) \ No newline at end of file +) diff --git a/HelloWorld/CMakeLists.txt b/HelloWorld/CMakeLists.txt index 547baab..bce0f2d 100644 --- a/HelloWorld/CMakeLists.txt +++ b/HelloWorld/CMakeLists.txt @@ -5,15 +5,6 @@ set (ProjectName HelloWorld) set (Version 1.0.1) 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 if(NOT CMAKE_SIZEOF_VOID_P EQUAL 8) message(FATAL_ERROR "Unsupported architecture. Only x64 or aarch64 (arm64) is supported.") @@ -31,11 +22,22 @@ else() set(DISTRIBUTION "x86_64-linux-gnu") endif() -message(Distribution: ${DISTRIBUTION}) -message(Building: ${ProjectName} ${Version}) -message(Build path: ${PROJECT_BINARY_DIR}) -message(JPL assembling path: ${JPL_DIRECTORY}) -message(JPL path: ${JPL_DIRECTORY}/../../../build/${ProjectName}/${JPL_FILE_NAME}) +# Paths setup +set (JAMI_PLUGINS_PATH ${PROJECT_SOURCE_DIR}/.. ) +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(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_REQUIRED True) @@ -112,31 +114,14 @@ if(CMAKE_CXX_FLAGS_DEBUG) set(EXTRA_DEBUG_LIBRARIES "-lyaml-cpp") 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() add_custom_command( TARGET ${ProjectName} PRE_BUILD COMMAND python3 ${PROJECT_SOURCE_DIR}/../SDK/jplManipulation.py --preassemble --plugin=${ProjectName} COMMENT "Assembling Plugin files" ) - endif() endif() - add_custom_command( TARGET ${ProjectName} PRE_BUILD @@ -144,34 +129,17 @@ add_custom_command( COMMENT "Assembling Plugin files" ) - -if(WIN32) - 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) - 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() +# Copy shared library to jpl directory +add_custom_command( + TARGET ${ProjectName} + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${ProjectName}> ${PLUGIN_OUTPUT_DIR} + COMMENT "Copying output file to jpl directory" +) add_custom_command( TARGET ${ProjectName} 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" -) \ No newline at end of file +) -- GitLab