Skip to content

Commit

Permalink
Improved Emgu.TF.Lite.runtime.maui.ios nuget package build.
Browse files Browse the repository at this point in the history
  • Loading branch information
emgucv committed Oct 20, 2023
1 parent 41b0dfe commit 5bd7433
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 21 deletions.
47 changes: 41 additions & 6 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -724,19 +724,29 @@ IF(HAVE_LITE_BUILD)

SET(EMGUTF_LITE_XAMARIN_ANDROID_NUGET_ID "${EMGUTF_LITE_NUGET_ID}.runtime.xamarin.android")
SET(EMGUTF_LITE_XAMARIN_ANDROID_NUGET_TITLE "Native runtime of ${EMGUTF_LITE_NUGET_TITLE} for Xamarin Android")

SET(EMGUTF_LITE_MAUI_IOS_NUGET_ID "${EMGUTF_LITE_NUGET_ID}.runtime.maui.ios")
SET(EMGUTF_LITE_MAUI_IOS_NUGET_TITLE "Native runtime of ${EMGUTF_LITE_NUGET_TITLE} for Maui iOS")

SET(EMGUTF_LITE_XAMARIN_IOS_NUGET_ID "${EMGUTF_LITE_NUGET_ID}.runtime.xamarin.ios")
SET(EMGUTF_LITE_XAMARIN_IOS_NUGET_TITLE "Native runtime of ${EMGUTF_LITE_NUGET_TITLE} for Xamarin iOS")

SET(EMGUTF_LITE_MODEL_NUGET_TITLE "Emgu TF Lite Models")
#MESSAGE(STATUS ">>> HAVE_WINDESKTOP_LITE: ${HAVE_WINDESKTOP_LITE}")

IF(EMGU_SIGN_FOUND AND WIN32)
file(TO_NATIVE_PATH ${EMGU_SIGN_EXECUTABLE} EMGU_SIGN_EXECUTABLE_NATIVE_PATH)
file(TO_NATIVE_PATH ${SIGNTOOL_EXECUTABLE} SIGNTOOL_EXECUTABLE_NATIVE_PATH)
ENDIF()
IF(EMGU_NUGET_SIGN_FOUND AND WIN32)
file(TO_NATIVE_PATH ${EMGU_NUGET_SIGN_EXECUTABLE} EMGU_NUGET_SIGN_EXECUTABLE_NATIVE_PATH)
file(TO_NATIVE_PATH ${NUGET_EXECUTABLE} NUGET_EXECUTABLE_NATIVE_PATH)
ENDIF()

IF (HAVE_ANDROID_LITE)
# Sign and copy the binary
SET(EMGUTF_LITE_MAUI_ANDROID_POST_PROCESS_BINARY "<Target Name=\"PostProcessBinary\" AfterTargets=\"PostBuildEvent\">")
IF(EMGU_SIGN_FOUND AND WIN32)
file(TO_NATIVE_PATH ${EMGU_SIGN_EXECUTABLE} EMGU_SIGN_EXECUTABLE_NATIVE_PATH)
file(TO_NATIVE_PATH ${SIGNTOOL_EXECUTABLE} SIGNTOOL_EXECUTABLE_NATIVE_PATH)
SET(EMGUTF_LITE_MAUI_ANDROID_POST_PROCESS_BINARY "${EMGUTF_LITE_MAUI_ANDROID_POST_PROCESS_BINARY}
<Message Text=\"Signing $(OutputPath)$(AssemblyName).dll\" Importance=\"high\" />
<MakeDir Directories=\"$(OutputPath)\\signed\"/>
Expand All @@ -752,8 +762,6 @@ IF(HAVE_LITE_BUILD)
# Sign the nuget package
SET(EMGUTF_LITE_MAUI_ANDROID_POST_PROCESS_NUGET "")
IF(EMGU_NUGET_SIGN_FOUND AND WIN32)
file(TO_NATIVE_PATH ${EMGU_NUGET_SIGN_EXECUTABLE} EMGU_NUGET_SIGN_EXECUTABLE_NATIVE_PATH)
file(TO_NATIVE_PATH ${NUGET_EXECUTABLE} NUGET_EXECUTABLE_NATIVE_PATH)
SET(EMGUTF_LITE_MAUI_ANDROID_POST_PROCESS_NUGET "${EMGUTF_LITE_MAUI_ANDROID_POST_PROCESS_NUGET}
<Target Name=\"PostProcessNuget\" AfterTargets=\"Pack\">
<Message Text=\"Signing $(PackageOutputPath)\\$(PackageId).$(PackageVersion).nupkg\" Importance=\"high\" />
Expand All @@ -767,6 +775,35 @@ IF(HAVE_LITE_BUILD)
ENDIF()

IF (HAVE_IOS_LITE)
# Sign and copy the binary
SET(EMGUTF_LITE_MAUI_IOS_POST_PROCESS_BINARY "<Target Name=\"PostProcessBinary\" AfterTargets=\"PostBuildEvent\">")
IF(EMGU_SIGN_FOUND AND WIN32)
SET(EMGUTF_LITE_MAUI_IOS_POST_PROCESS_BINARY "${EMGUTF_LITE_MAUI_IOS_POST_PROCESS_BINARY}
<Message Text=\"Signing $(OutputPath)$(AssemblyName).dll\" Importance=\"high\" />
<MakeDir Directories=\"$(OutputPath)\\signed\"/>
<Exec Command='${EMGU_SIGN_EXECUTABLE_NATIVE_PATH} \"$(OutputPath)$(AssemblyName).dll\" \"$(OutputPath)signed\" \"${SIGNTOOL_EXECUTABLE_NATIVE_PATH}\"' WorkingDirectory=\"$(OutputPath)\" />
")
ENDIF()
SET(EMGUTF_LITE_MAUI_IOS_POST_PROCESS_BINARY "${EMGUTF_LITE_MAUI_IOS_POST_PROCESS_BINARY}
<Message Text=\"Copying $(OutputPath)$(AssemblyName).dll, $(OutputPath)$(AssemblyName).xml to $(TfLiteBinaryDir)\" Importance=\"high\" />
<Copy SourceFiles=\"$(OutputPath)$(AssemblyName).dll\" DestinationFolder=\"$(TfLiteBinaryDir)\" ContinueOnError=\"true\" />
<Copy SourceFiles=\"$(OutputPath)$(AssemblyName).xml\" DestinationFolder=\"$(TfLiteBinaryDir)\" ContinueOnError=\"true\" />
</Target>")

# Sign the nuget package
SET(EMGUTF_LITE_MAUI_IOS_POST_PROCESS_NUGET "")
IF(EMGU_NUGET_SIGN_FOUND AND WIN32)
SET(EMGUTF_LITE_MAUI_IOS_POST_PROCESS_NUGET "${EMGUTF_LITE_MAUI_IOS_POST_PROCESS_NUGET}
<Target Name=\"PostProcessNuget\" AfterTargets=\"Pack\">
<Message Text=\"Signing $(PackageOutputPath)\\$(PackageId).$(PackageVersion).nupkg\" Importance=\"high\" />
<MakeDir Directories=\"$(PackageOutputPath)\\signed\"/>
<Exec Command='${EMGU_NUGET_SIGN_EXECUTABLE_NATIVE_PATH} \"$(PackageOutputPath)\\$(PackageId).$(PackageVersion).nupkg\" \"$(PackageOutputPath)\\signed\" \"${NUGET_EXECUTABLE_NATIVE_PATH}\"' WorkingDirectory=\"$(PackageOutputPath)\" />
</Target>")
ENDIF()

CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Emgu.TF.Lite.runtime.maui.ios.Directory.Build.props.in ${CMAKE_CURRENT_SOURCE_DIR}/Emgu.TF.Platform/Maui/iOS/Directory.Build.props)
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Emgu.TF.Lite.runtime.maui.ios.Package.README.md.in ${CMAKE_CURRENT_SOURCE_DIR}/Emgu.TF.Platform/Maui/iOS/docs/README.md)

SET(EMGUTF_LITE_NUGET_FILE_LIST "${EMGUTF_LITE_NUGET_FILE_LIST}
<file src=\"..\\..\\..\\lib\\ios\\Emgu.TF.Lite.Netstandard.dll\" target=\"lib\\xamarinios10\" />
<file src=\"..\\..\\..\\lib\\ios\\Emgu.TF.Lite.Netstandard.xml\" target=\"lib\\xamarinios10\" />")
Expand All @@ -775,8 +812,6 @@ IF(HAVE_LITE_BUILD)
<dependency id=\"System.Runtime.InteropServices.RuntimeInformation\" version=\"4.3.0\" />
</group>")

CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Emgu.TF.Lite.runtime.maui.ios.Directory.Build.props.in ${CMAKE_CURRENT_SOURCE_DIR}/Emgu.TF.Platform/Maui/iOS/Directory.Build.props)
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Emgu.TF.Lite.runtime.maui.ios.Package.README.md.in ${CMAKE_CURRENT_SOURCE_DIR}/Emgu.TF.Platform/Maui/iOS/docs/README.md)
ENDIF()

SET(EMGUTF_LITE_NUGET_FILE_LIST "${EMGUTF_LITE_NUGET_FILE_LIST}
Expand Down
30 changes: 15 additions & 15 deletions cmake/Emgu.TF.Lite.runtime.maui.ios.Directory.Build.props.in
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,26 @@
<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))" />

<PropertyGroup>
<PackageId>${EMGUCV_MAUI_IOS_NUGET_ID}</PackageId>

<title>${EMGUCV_MAUI_IOS_NUGET_TITLE}</title>
<PackageId>${EMGUTF_LITE_MAUI_IOS_NUGET_ID}</PackageId>
<title>${EMGUTF_LITE_MAUI_IOS_NUGET_TITLE}</title>
<version>${CPACK_PACKAGE_VERSION}</version>
<authors>${CPACK_PACKAGE_VENDOR}</authors>
<owners>${CPACK_PACKAGE_VENDOR}</owners>
<summary>iOS runtime package of Emgu CV for MAUI</summary>
<Description>This package contains the native iOS runtime of Emgu CV for MAUI</Description>
<PackageReleaseNotes>This is the ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH} release of Emgu CV. For online documentation please visit
${NUGET_EMGU_URL}/wiki/files/${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}/document/index.html
<summary>iOS runtime package of Emgu TF Lite for MAUI</summary>
<Description>This package contains the native iOS runtime of Emgu TF Lite for MAUI</Description>
<PackageReleaseNotes>This is the ${CPACK_PACKAGE_VERSION}${TENSORFLOW_VERSION_SUFFIX} release of Emgu TF Lite for Maui iOS. For online documentation please visit
http://www.emgu.com/wiki/files/emgutf/${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}/document-lite/
</PackageReleaseNotes>

<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
<PackageIcon>nuget_icon.png</PackageIcon>
<PackageReadmeFile>docs/README.md</PackageReadmeFile>
<PackageLicenseFile>LICENSE.txt</PackageLicenseFile>
<RepositoryUrl>https://github.com/emgucv/emgucv</RepositoryUrl>
<RepositoryUrl>https://github.com/emgucv/emgutf</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<PackageRequireLicenseAcceptance>True</PackageRequireLicenseAcceptance>
<PackageOutputPath>..\..\..\platforms\nuget</PackageOutputPath>
<PackageTags>opencv;emgu;emgucv;ai;image;ios;maui</PackageTags>
<PackageOutputPath>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\..\..\..\platforms\nuget))</PackageOutputPath>
<PackageTags>tensorflow;emgu;emgutf;ai;image;ios;maui</PackageTags>
<PackageProjectUrl>${NUGET_EMGU_URL}</PackageProjectUrl>
<copyright>© ${CPACK_PACKAGE_VENDOR} ${CURRENT_YEAR}. All rights reserved.</copyright>

Expand All @@ -46,17 +45,18 @@ ${NUGET_EMGU_URL}/wiki/files/${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERS
<PackagePath>docs\</PackagePath>
</None>
</ItemGroup>
<ItemGroup Condition="Exists('..\..\..\libs\iOS\iphoneos_arm64_version_string.inc')">
<None Include="..\..\..\libs\iOS\iphoneos_arm64_version_string.inc">
<ItemGroup Condition="Exists('..\..\..\lib\ios\iphoneos_arm64_version_string.inc')">
<None Include="..\..\..\lib\ios\iphoneos_arm64_version_string.inc">
<Pack>True</Pack>
<PackagePath>docs\</PackagePath>
</None>
</ItemGroup>
<ItemGroup Condition="Exists('..\..\..\libs\iOS\simulator_x86_64_version_string.inc')">
<None Include="..\..\..\libs\iOS\simulator_x86_64_version_string.inc">
<ItemGroup Condition="Exists('..\..\..\lib\ios\simulator_x86_64_version_string.inc')">
<None Include="..\..\..\lib\ios\simulator_x86_64_version_string.inc">
<Pack>True</Pack>
<PackagePath>docs\</PackagePath>
</None>
</ItemGroup>
${EMGUCV_MAUI_IOS_POST_PROCESS_BINARY}
${EMGUTF_LITE_MAUI_IOS_POST_PROCESS_BINARY}
${EMGUTF_LITE_MAUI_IOS_POST_PROCESS_NUGET}
</Project>

0 comments on commit 5bd7433

Please sign in to comment.