forked from openframeworks/openFrameworks
-
Notifications
You must be signed in to change notification settings - Fork 0
Building Libraries for OF
ofTheo edited this page Apr 30, 2012
·
22 revisions
Great iOS build generator ( used for 0071 release ): https://github.com/stephanepechard/iphone_opencv_test
Also load of opencv for ios tips here: http://computer-vision-talks.com/tag/opencv/ including premade builds.
- Download the latest version from the OpenCV SourceForge. OF 007 shipped with 2.2, as of this writing 2.3.1 has been tested with OF, and 2.4 looks promising.
- Unzip the files somewhere near your root. For this example I'll use
/OpenCV-2.3.1
. This helps make short paths when debug/error messages show up later. - Start up CMake.
- For "where is the source code", use
/OpenCV-2.3.1
and "where to build the binaries" is/OpenCV-2.3.1/build
- Select the 'grouped' and 'advanced' checkboxes.
- Under "WITH", deselect everything.
- Under "USE", select everything.
- Under "BUILD", deselect
BUILD_SHARED_LIBS
. This will make static libraries. You can also deselect anything related to building test/example apps to speed up compilation. - Under "CMAKE" you might consider adding "-funroll-loops" to
CMAKE_CXX_FLAGS_RELEASE
andCMAKE_C_FLAGS_RELEASE
so they look like-O3 -DNDEBUG -funroll-loops
. ChangeCMAKE_BUILD_TYPE
to "Release". - Hit "Configure" then after it's done hit "Generate". CMake will ask what kind of project files you want to generate. Select the one relevant to the platform you're building for.
- Open up the generated project file in
/OpenCV-2.3.1/build
. - (OS X only) There is a conflict in
imgproc.hpp
where "check" is defined as a macro by OS X. Add the line#undef check
to the top ofimgproc.hpp
to fix this. - Build the libraries.
- (Optional) Use some crazy tricks to bundle them into a single library... more on that another time.
( the following builds 32bit static poco for OS X, without mysql as that is GPL and not a default library )
export ARCHFLAGS="-arch i386"
export POCO_TARGET_OSARCH="i386"
./configure --no-tests --no-samples --static --omit=Data/MySQL
make
1. Edit the file in build/config/iPhone
-
Uncomment out IPHONE_SDK_VERSION and set it equal to your SDK
-
Note: if you want to build for armv7 do: Set POCO_TARGET_OSARCH to be armv7
-
Close and Save the file.
2. Edit the file in build/config/iPhoneSimulator
-
Change POCO_TARGET_OSARCH to i386
-
Close and Save the file.
3. build Poco
cd back to the main folder and run these commands:
./configure --no-tests --no-samples --static --omit=Data/MySQL --omit=Data/SQLite --omit=Data/ODBC --omit=NetSSL_OpenSSL --omit=Crypto --config=iPhone
make
and
./configure --no-tests --no-samples --static --omit=Data/MySQL --omit=Data/SQLite --omit=Data/ODBC --omit=NetSSL_OpenSSL --omit=Crypto --config=iPhoneSimulator
make
4. Use lipo make a universal lib
run the following:
cd lib
lipo -c iPhoneOS/armv6/libPocoFoundation.a iPhoneOS/armv7/libPocoFoundation.a iPhoneSimulator/i386/libPocoFoundation.a -o PocoFoundation.a
lipo -c iPhoneOS/armv6/libPocoData.a iPhoneOS/armv7/libPocoData.a iPhoneSimulator/i386/libPocoData.a -o PocoData.a
lipo -c iPhoneOS/armv6/libPocoNet.a iPhoneOS/armv7/libPocoNet.a iPhoneSimulator/i386/libPocoNet.a -o PocoNet.a
lipo -c iPhoneOS/armv6/libPocoUtil.a iPhoneOS/armv7/libPocoUtil.a iPhoneSimulator/i386/libPocoUtil.a -o PocoUtil.a
lipo -c iPhoneOS/armv6/libPocoXML.a iPhoneOS/armv7/libPocoXML.a iPhoneSimulator/i386/libPocoXML.a -o PocoXML.a
lipo -c iPhoneOS/armv6/libPocoZip.a iPhoneOS/armv7/libPocoZip.a iPhoneSimulator/i386/libPocoZip.a -o PocoZip.a