Yocto SDK ROS1 melodic meta-ros build - sdk

we are starting to integrate the ROS layer to our Yocto build system of the company. Since our process is to provide a SDK to our application developers which can cross compile their applications suitable to the target boards which we are supporting, we are facing a problem to integrate the catkin toolchain into the Yocto SDK. We are using the ROS1 melodic version in the meta-ros branch dunfell. Using the popultate_sdk to our target it didn’t integrate the catkin toolchain at all. We bbappend the catkin recipe with the extension BBCLASSEXTEND=“native nativesdk” which builds the toolchaininto the SDK, but we are facing the issue that the paths to the catkin toolchain are not working if we source the environment script of the SDK as described in the Yocto manual. But anyway I am not sure if this is the correct way to integrate the catkin toolchain into the SDK.
So basically:
Is there a documentation/manual to integrate the catkin toolchain into the Yocto SDK? Are there any solutions? Did somebody tried it and get a positive result?

Which recipe are you trying to use the catkin_tools to build with?
when you add
BBCLASSEXTEND = "native nativesdk"
this results in two different recipes being built that any other recipe can depend on.
Including the BBCLASSEXTEND would mean that the catkin-%.bb recipe then creates the nativesdk-catkin and catkin-native targets. These targets are used in other recipes as such:
DEPENDS = "catkin-native"
and like all recipes being DEPEND upon, they will show up in either ${RECIPE_SYSROOT_NATIVE} or ${RECIPE_SYSROOT}

Related

Build iOS .ipa from Ionic 4 project inside Bitbucket pipeline

I have an Ionic v4 project in bitbucket, I created a pipeline to build Android APK from the project using Docker and the basic .apk building steps.
Now I have to do the same thing for iOS. I don't think Docker will be a good option since it can't really run a Mac image.
My question here is: Are there services, libraries or something else that I can use to build the .ipa on the pipeline? Preferably free with the least cost, has anyone made such things and has examples here to help me get it off the ground?
I've been looking at Microsoft App Center and CircleCI, for example, but both seem to have a cost and A LOT of capabilities that really aren't necessary in this project...
Thanks in advance!

How to move packages from a build machine into a SDK/cross compiler tool chain

I am aiming to build an sdk targeting 32bit debian8 platform. And would like to move few packages likes cmake, maven, scons etc on to the sdk. These packages helps to compile the code (cmake, scons etc) but doesn't actually present/needed on the robot.
Rather than compiling these pkgs, I was advised to fetch the pre-build packages/binaries and all their dependencies from the build system (here build system = host system = ubuntu18.04 ) and place them in SDK folder.
How can I point all the sysloader files to load them from the local SDK. Thus making it self contained ?
Not sure, if this works or at-least hard to make it work ? Is this the right way of doing it ?
Can you guys shed some light on this.
Thanks.
I moved the packages to the desired location and used patchelf. I have observed that Home brew on linux is also performing the patching (brew install -v)

Is it possible to use TensorFlow C++ API on Windows?

I'm interested in incorporating TensorFlow into a C++ server application built in Visual Studio on Windows 10 and I need to know if that's possible.
Google recently announced Windows support for TensorFlow: https://developers.googleblog.com/2016/11/tensorflow-0-12-adds-support-for-windows.html
but from what I can tell this is just a pip install for the more commonly used Python package, and to use the C++ API you need to build the repo from source yourself: How to build and use Google TensorFlow C++ api
I tried building the project myself using bazel, but ran into issues trying to configure the build.
Is there a way to get TensorFlow C++ to work in native Windows (not using Docker or the new Windows 10 Linux subsystem, as I've seen others post about)?
Thanks,
Ian
It is certainly possible to use TensorFlow's C++ API on Windows, but it is not currently very easy. Right now, the easiest way to build against the C++ API on Windows would be to build with CMake, and adapt the CMake rules for the tf_tutorials_example_trainer project (see the source code here). Building with CMake will give you a Visual Studio project in which you can implement your C++ TensorFlow program.
Note that the tf_tutorials_example_trainer project builds a Console Application that statically links all of the TensorFlow runtime into your program. At present we have not written the necessary rules to create a reusable TensorFlow DLL, although this would be technially possible: for example, the Python extension is a DLL that includes the runtime, but does not export the necessary symbols to use TensorFlow's C or C++ APIs directly.
There is a detailed guide by Joe Antognini and a similar TensorFlow ReadMe at GitHub explaining the building of TensorFlow source via CMake. You also need to have SWIG installed on your machine which allows connecting C/C++ source with the Python scripting language. I did use Visual CMAKE (cmake-gui) with the screen capture shown below.
In the CMake configuration, I used Visual Studio 15 2017 compiler. Once this stage successfully completes, you can click on the Generate button to go ahead with the actual build process.
However, on Visual Studio 2015, when I attempted building via the "ALL_BUILD" project, the setup gave me "build tools for v141 cannot be found" error. This did not go away even when I attempted to retarget my solution. Finally, the solution got built successfully with Visual Studio 2017. You also need to manually set the SWIG_EXECUTABLE path in CMake before it successfully configures.
As indicated in the Antognini link, for me the build took about half an hour on a 16GB RAM, Core i7 machine. Once done, you might want to validate your build by attempting to run the tf_tutorials_example_trainer.exe file.
Hope this helps!
For our latest work on building TensorFlow C++ API on Windows, please look at this github page. This works on Windows 10, currently without CUDA support (only CPU).
PS:
Only the bazel build method works, because CMake is not supported and not maintained anymore, resulting in CMake configuration errors.
I had to use a downgraded version of my Visual Studio 2017 (from 15.7.5 to 15.4) by adding "VC++ 2017 version 15.4 v14.11 toolset" through the installer (Individual Components tab).
The cmake command which worked for me was:
cmake .. -A x64 -DCMAKE_BUILD_TYPE=Release ^
-T "v141,version=14.11" ^
-DSWIG_EXECUTABLE="C:/Program Files/swigwin-3.0.12/swig.exe" ^
-DPYTHON_EXECUTABLE="C:/Program Files/Python/python.exe" ^
-DPYTHON_LIBRARIES="C:/Program Files/Python/libs/python27.lib" ^
-Dtensorflow_ENABLE_GPU=ON ^
-DCUDNN_HOME="C:/Program Files/cudnn-9.2-windows10-x64-v7.1/cuda" ^
-DCUDA_TOOLKIT_ROOT_DIR="C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v9.0"
After the build, open tensorflow.sln in Visual Studio and build ALL_BUILD.
If you want to enable GPU computation, do check your Graphics Card here (Compute Capability > 3.5). Do remember to install all the packages (Cuda Toolkit 9.0, cuDNN, Python 3.7, SWIG, Git, CMake...) and add the paths to the environment variable in the beginning.
I made a README detailing how to I built the Tensorflow dll and .lib file for the C++ API on Windows with GPU support building from source with Bazel. Tensorflow version 1.14
The tutorial is step by step and starts at the very beginning, so you may have to scroll down past steps you have already done, like checking your hardware, installing Bazel etc.
Here is the url: https://github.com/sitting-duck/stuff/tree/master/ai/tensorflow/build_tensorflow_1.14_source_for_Windows
Probably you will want to scroll all the way down to this part:
https://github.com/sitting-duck/stuff/tree/master/ai/tensorflow/build_tensorflow_1.14_source_for_Windows#step-7-build-the-dll
It shows how to pass command to create .lib and .dll.
Then to test your .lib you should link it into your c++ project,
Then it will show you how to identify and fix the missing symbols using the TF_EXPORT macro
I am actively working on making this tutorial better so feel free to leave comments on this answer if you are having problems.

SalesForce: How to automate managed package installation in Continuous Integration

I have successfully set up continuous integration process using TeamCity for non-SalesForce projects, but need help with automating SalesFoce manage packages installation.
To migrate metadata from source to target org, I used ant migration tool, but how to do in case of managed packages?
Questions:
How will TeamCity know that the new package has been created? I may watch the changes in source code tool, but not in the cloud where the created package is stored.
How to get the latest version of the package from the cloud? I need to compare the versions of the packages: the installed one and the new one
How to install the package?
Please help.
I checked SF documentation and found that SF API provides ability to install, upgrade and uninstall Managed Packages. Also it provides ability to run some Apex code after these actions. I think, you need to move in this way. Here is related documentation.

cvBlobsLib with mingw

Does anybody know how to build cvBlobsLib using MinGW? On official page http://opencv.willowgarage.com/wiki/cvBlobsLib there is only instruction for VS.
There is also linux version of this lib http://opencv.willowgarage.com/wiki/cvBlobsLib?action=AttachFile&do=view&target=cvblobs8.3_linux.tgz , but its makefile cannot be used in windows as i see.
If you use eclipse then you dont have a lot of work:
Create a new project, using MinGW toolchain.
Go to the project properties, and under C/C++ General >> Paths and Symbols add the openCV library paths.
compile the project and it should be OK.
Use this
http://opencv.willowgarage.com/wiki/cvBlobsLib#Build_intructions
if you have more problems (especially NOTE 3)

Resources