Giter VIP home page Giter VIP logo

apothecary's Introduction

openFrameworks is a C++ toolkit for creative coding. If you are new to OF, welcome!

Build status

  • The master branch contains the newest, most recently updated code. This code is packaged and available for download in the "Nightly Builds" section of openframeworks.cc/download.
  • The stable branch contains the code corresponding to the last stable openFrameworks release. This stable code is packaged and available for download at openframeworks.cc/download.
Platform Master branch Stable branch
Windows MSYS2 Build status Build status
Windows Visual Studio Build status Build status
Linux 64 & Arm Linux Build Status Linux Build Status
Emscripten Emscripten Build Status Emscripten Build Status
macos macos Build Status macos Build Status
iOS & tvOS iOS tvOS Build Status iOS tvOS Build Status

folder structure

This release of OF comes with several folders:

  • addons
  • apps
  • docs
  • examples
  • export (on some systems)
  • libs
  • other
  • scripts
  • projectGenerator

docs has some documentation around OF usage, per platform things to consider, etc. You should definitely take a look in there; for example, if you are on OSX, read the osx.md. apps and examples are where projects go -- examples contains a variety of projects that show you how to use OF, and apps is where your own projects will go. libs contains the libraries that OF uses, including the openframeworks core itself. addons are for additional functionality that's not part of the core. export is for DLLs and dylibs that need to be put in each compiled project. The scripts folder has the templates and small scripts for automating OF per platform. project generator is a GUI based tool for making new projects - this folder is only there in packaged releases.

One idea that's important is that OF releases are designed to be self-contained. You can put them anywhere on your hard drive, but it's not possible to mix different releases of OF together, so please keep each release (0.8.0, 0.8.1) separate. Projects may generally work from release to release, but this is not guaranteed. Because OF is self-contained, there's extensive use of local file paths (ie, ../../../) throughout OF. It's important to be aware of how directories are structured. A common error is to take a project and move it so that it's a level below or above where it used to be compared to the root of OF. This means that links such as ../../../libs will break.

Get involved

The openframeworks forum:

http://forum.openframeworks.cc/

is a warm and friendly place. Please ask or answer a question. The most important part of this project is that it's a community, more than just a tool, so please join us! Also, this is free software, and we learn so much about what is hard, what doesn't make sense, what is useful, etc. The most basic questions are acceptable here! Don't worry, just join the conversation. Learning in OF is social, it's hard to do it alone, but together we can get far!

Our GitHub site is active:

https://github.com/openframeworks/openFrameworks

if you have bugs or feature requests, consider opening an issue. If you are a developer and want to help, pull requests are warmly welcome. Please read the contributing guide for guidelines:

https://github.com/openframeworks/openFrameworks/blob/master/CONTRIBUTING.md

We also have a developer's mailing list, which is useful for discussing issues around the development and future of OF.

Developers

To grab a copy of openFrameworks for your platform, check the download page on the main site.

If you are working with the Git repository, the stable branch of the OF repository corresponds to the most recent release, with a few important differences:

  1. The release includes a simple openFrameworks project generator.
  2. This GitHub repository contains code and libs for all the platforms, but the releases are done on a per-platform basis.
  3. This GitHub repository has no project files for the different examples. They are generated automatically for each release using a tool in apps/projectGenerator/.
  4. There are no external dependencies in this repository, you can download them using the download_libs.sh script for each platform in the particular platform folder inside scripts.

If you want to work with the openFrameworks GitHub repository, you need to download the external dependencies and you should use the project generator to create project files for all the code in examples/. To generate the project files with the project generator enable the 'Advanced Options' in the settings tab, then use 'Update Multiple' to update the projects for the examples/ folder path in the repo.

To set up the project generator submodule within the OF repo, use the command git submodule init then git submodule update whilst inside the openFrameworks repo.

For more info on working with the Project Generator, for per-platform readmes, and more information, see the documentation.

Versioning

openFrameworks uses Semantic Versioning, although strict adherence will only come into effect at version 1.0.0.

apothecary's People

Contributors

artificiel avatar arturoc avatar avilleret avatar bakercp avatar brinoausrino avatar cuinjune avatar danoli3 avatar danomatika avatar danzeeeman avatar dimitre avatar elliotwoods avatar halfdanj avatar hamoid avatar johnkingsley avatar jonathhhan avatar kritzikratzi avatar kyeshmz avatar leocolomb avatar lewisou avatar nickhardeman avatar oftheo avatar olixil avatar oxillo avatar pizthewiz avatar tgfrerer avatar themancalledjakob avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

apothecary's Issues

shasum failure for openssl on android / osx

Looking at the Travis build logs I see errors with openssl:
https://travis-ci.org/openframeworks/apothecary/jobs/362231065

2018-04-04 16:58:17 URL:https://www.openssl.org/source/openssl-1.0.2k.tar.gz [5309236/5309236] -> "openssl-1.0.2k.tar.gz" [1]
2018-04-04 16:58:17 URL:https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz [5309236/5309236] -> "openssl-1.0.2k.tar.gz.sha1" [1]

Notice how the second file above is not the sha but the full tar.gz ( openssl-1.0.2k.tar.gz ) even thought its saving it as the sha1

Locally I get:

2018-04-04 12:00:56 URL:https://www.openssl.org/source/openssl-1.0.2k.tar.gz [5309236/5309236] -> "openssl-1.0.2k.tar.gz" [1]
2018-04-04 12:00:56 URL:https://www.openssl.org/source/openssl-1.0.2k.tar.gz.sha1 [41/41] -> "openssl-1.0.2k.tar.gz.sha1" [1]

The line that is failing is:
https://github.com/openframeworks/apothecary/blob/master/apothecary/formulas/openssl/openssl.sh#L33

But I think this is due to wget not downloading the sha1 but the tar.gz for some reason.

Addon formula building broken.

Hi @arturoc

At some point in the last few months, addon formula building broke.

There are currently a handful of variables that are now orphaned, e.g.

  • REL_LIBS_DIR
  • REL_ADDONS_DIR

It appears that these were removed here:

fc7d166

realpath on mac

Trying to use apothecary with OF 0.9.8 + OSX 10.12 the apothecary script kept throwing errors.
It seems like realpath is not installed by default on Sierra.
To fix, I could brew install coreutils.
Should there be an OSX-apothecary-install-script ?

Which GLFW do we use?

This is mostly for @arturoc

Building and testing GLFW as of June 14 2014 almost but doesn't quite work, due to 1) a function signature mismatch ( glfwSetKeyCallback ) and 2) a nonexistant function being used in ofAppGLFWWindow ( glfwSetDropCallback )

I gather Arturo's got his own branch that is what's currently being used in OF. Should GLFW be working off that fork, or the official GLFW repo?

IMO it should be the main GLFW repo if possible, but I'm not sure what the reason is for Arturo's fork.

EDIT: This is for OSX.

kiss -- why compiled libs for linux?

@arturoc I'm trying to figure out why the linux versions of the kiss libs need to be compiled and if they do, then how. I was going off of the arm6vl makefile currently in the repo, but I'm still a bit confused why we can't just use it f from source.

Poco formula archive issue

Me again :) I'm getting the following issue when updating poco.

 ----- poco -----

 Downloading "poco"

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   136  100   136    0     0    457      0 --:--:-- --:--:-- --:--:--   457
100     9  100     9    0     0     15      0 --:--:-- --:--:-- --:--:--    15
tar: Unrecognized archive format
tar: Error exit delayed from previous errors.

 ^ Received error ^

It looks like https://github.com/pocoproject/poco/archive/ doesn't exist.

When built as dependency, git is preferred. Otherwise, download is preferred.

This results in occasional problems where the repo has not been auto-configured.

Proposed solutions:

  • Make it clear that
    # generate the configure script if it's not there
    if [ ! -f configure ] ; then
        ./autogen.sh
    fi

should always be in makefile based repos.

  • Make the dependency downloads follow the same rules as the normal downloads.

Merge $OS, $TYPE, & $ARCH into $BUILD_TYPE

I'd propose that we collapse $OS, $TYPE, & $ARCH: down into simply $BUILD_TYPE. In this way we can simply focus on formulas for a build type rather than specific combinations of architecture and platforms. We will still be able to build across platforms by specifying a specific $BUILD_TYPE. Additionally this brings us into closer parity with the makefile system, which might ideally be hooked into apothecary in some future version. What do you think?

Error : Building Tess2 under "apothecary -t ios update"

Hey Dan, Seeing this error when building tess2.
I'm using "apothecary -t ios update".

Any ideas?

Building "tess2"

/Users/username/Documents/apothecary/scripts/apothecary/formulas/tess2/CMakeLists.txt -> ./CMakeLists.txt
/Users/username/Documents/apothecary/scripts/apothecary/formulas/tess2/tess2.sh: line 61: build_ios.sh: command not found

 ^ Received error ^

global variable export should be avoided.

Global variable exports within formulas e.g.:

export LDFLAGS="-arch i386 -arch x86_64 -isysroot $XCODE_DEV_ROOT/Platforms/MacOSX.platform/Developer/SDKs/MacOSX$OSX_SDK_VER.sdk"
export CFLAGS="-Os -arch i386 -arch x86_64 -isysroot $XCODE_DEV_ROOT/Platforms/MacOSX.platform/Developer/SDKs/MacOSX$OSX_SDK_VER.sdk"

are causing a lot of headaches within the dependency systems. I'd propose that all exports should be passed via a ./configure arg, including the PKG_CONFIG args.

How to associate addons with their libs?

We used to have the formulas for addons in the core addons themselves. But now I see ofxOpenCV doesn't have the formulas.

Just wondering how I should let the project generator or the CI know that the ofxKinect addons needs libusb for VS and OS X

Thanks!
Theo

Problem building addon lib

Hello,

I'm having trouble building libs from addons. The problem seems to be that the LIBS_DIR path is wrong in the copy phase. Digging into the code the problem seems to be that IS_CUSTOM_LIBS_DIR is set to 1 here (Line 1214):

if [ "$LIBS_DIR" == "" ] ; then
  LIBS_DIR=$APOTHECARY_DIR/$REL_LIBS_DIR
else # manually set
  case $LIBS_DIR in
    /*) : ;; # absolute path
    *) LIBS_DIR=$WD/$LIBS_DIR ;; # relative path
  esac
  IS_CUSTOM_LIBS_DIR=1
fi

Because LIBS_DIR is already set here (Line 124):

LIBS_DIR=$(realpath ${APOTHECARY_DIR}/../)

And this way the LIBS_DIR isn't set correctly in doCommand() (Line 628):

# set libs dest dir to addon/libs if it hasn't been manually set
if [ $IS_CUSTOM_LIBS_DIR == 0 ] ; then
  LIBS_DIR=$ADDONS_DIR/$1/libs
fi

If I comment IS_CUSTOM_LIBS_DIR=1 in the first code block everything works as expected. Did I understand something wrong or is this a bug?

Thanks,
Michael

./ostype.sh No such file or directory

I have gotten previous versions to work, but can't seem to get this version working. I am on OSX 10.8. When I try to call update on anything I get the error apothecary: line 816: ./ostype.sh: No such file or directory.
Not sure if this matters, but I am running apothecary outside of OF. I have cd'ed into scripts/apothecary.

renaming libs from their default

I'd like to propose that going forward, we don't alter the names of 3rd party static libraries, but instead use the 3rd party developer's default. So in situation like cairo, we would no longer change the default name from libcairo.a. to cairo.a. From my understanding this was done historically (on osx in particular) to prevent native library conflicts. But I believe that we now have a firm grasp on the use of linker flag hierarchies and xcode config files and this should no longer be a problem. The primary benefit is that our formulae become much simpler and consistent.

tagline

(experimental) OpenFramerworks library dependency potion handler

typo

Error building iOS libs - iOS SDK hardcoded?

Running the script

apothecary -t ios update

I see that its setting the path to an SDK I don't have on my system.
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk

This results in lots of build errors.
I'm not sure where this has been set, maybe in the binary itself?

It would be good to either autodetect where the SDK is or allow user to specify the SDK ( as often people have several installed ).

Can not link pugixml in VS2017 release build

I can not link pugixml in Visual Studio 2017 release mode.
This only happens in the very limited case when I use ofxSvg(but oF's svg example doesn't have this problem)

The error is,

pugixml.lib' was created with an older compiler than other objects; rebuild old objects and libraries

Following formula could be the reason since it apparently uses vs 2015.

if [[ $VS_VER -gt 14 ]]; then
if [ $ARCH == 32 ] ; then
vs-build "pugixml_vs2015.vcxproj" build "Release|Win32"
vs-build "pugixml_vs2015.vcxproj" build "Debug|Win32"
else
vs-build "pugixml_vs2015.vcxproj" build "Release|x64"
vs-build "pugixml_vs2015.vcxproj" build "Debug|x64"
fi
else
if [ $ARCH == 32 ] ; then
vs-build "pugixml_vs2015.vcxproj" build "Release"
vs-build "pugixml_vs2015.vcxproj" build "Debug"
else
vs-build "pugixml_vs2015.vcxproj" build "Release|x64"
vs-build "pugixml_vs2015.vcxproj" build "Debug|x64"
fi
fi

This issue on pugixml repo might also be related.
zeux/pugixml#157

I just compile pugixml 1.9 by myself and replaced oF's bugixml 1.8.
It works ok so far.

We might need to provide different binaries for vs2015 and vs2017 (more...?)

Download precompiled libs to fill in the gaps.

Hey there, so I'd really like to see this thing folded into the core ASAP and it seems that the main thing that is missing is a formulas. In the absence of completed formulas -- just to speed the process, I'm wondering if we might host compiled versions of missing libs / headers on a separate server (say like those from @NickHardeman and this PR openframeworks/openFrameworks#2798) and "fake" the formula by just downloading and installing a known working binary/header combo.

I know this isn't super nice, but for things like the special version of GLUT that seems to be on the way out, we won't be upgrading it.

Anyway, what do you think?

OpenEXR in FreeImage fails

Got this error:

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/include/string.h:84:7: note: 'memset' should be declared
prior to the call site or in namespace 'Imf::'
void memset(void *, int, size_t);
^
4 errors generated.
make: *
* [Source/OpenEXR/./IlmImf/ImfHuf.o-i386] Error 1

Fixed it using this thread and modifying ImfHuf.cpp
http://sourceforge.net/p/freeimage/discussion/36110/thread/93d4ecd7/

linking errors in libs

I am trying to use ofsvg and I get the following.
It feels like svgtiny and libxml isn't linked correctly together, i modified the formula with no success and also using the precompiled version from ci (http://ci.openframeworks.cc/libs/openFrameworksLibs_master_linux64.tar.bz2) makes no difference


g++ -o bin/example  obj/linux64/Release/src/SomeScene.o obj/linux64/Release/src/ofApp.o obj/linux64/Release/src/main.o obj/linux64/Release/src/Star.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofx2DMapping/src/ofx2DMappingController.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofx2DMapping/src/ofx2DMappingProjector.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofx2DMapping/src/ofx2DFormMapping.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofx2DMapping/src/ofx2DMapping.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofx2DMapping/src/ofx2DMappingView.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxGuiExtended/src/containers/ofxGuiContainer.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxGuiExtended/src/containers/ofxGuiTabs.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxGuiExtended/src/containers/ofxGuiSliderGroup.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxGuiExtended/src/containers/ofxGuiGroup.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxGuiExtended/src/containers/ofxGuiPanel.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxGuiExtended/src/controls/ofxGuiInputField.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxGuiExtended/src/controls/ofxGuiFpsPlotter.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxGuiExtended/src/controls/ofxGuiFunctionPlotter.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxGuiExtended/src/controls/ofxGuiGraphics.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxGuiExtended/src/controls/ofxGuiToggle.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxGuiExtended/src/controls/ofxGuiZoomableGraphics.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxGuiExtended/src/controls/ofxGuiValuePlotter.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxGuiExtended/src/controls/ofxGuiLabel.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxGuiExtended/src/controls/ofxGuiButton.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxGuiExtended/src/controls/ofxGuiSlider.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxGuiExtended/src/ofxGuiElement.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxGuiExtended/src/view/ofxDOMFlexBoxLayout.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxGuiExtended/src/view/JsonConfigParser.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxGuiExtended/src/view/ofxDOMLayoutHelper.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxGuiExtended/src/view/ofxDOMBoxLayout.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxGuiExtended/src/DOM/Element.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxGuiExtended/src/DOM/Exceptions.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxGuiExtended/src/DOM/Events.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxGuiExtended/src/DOM/Layout.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxGuiExtended/src/DOM/Document.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxGuiExtended/src/ofxGuiExtended.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxSortableList/src/ofxSortableList.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxSvg/src/ofxSvg.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxTriangleMesh/src/ofxTriangleMesh.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxTriangleMesh/libs/Triangle/triangle.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxXmlSettings/src/ofxXmlSettings.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxXmlSettings/libs/tinyxml.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxXmlSettings/libs/tinyxmlerror.o /home/nanu/visuals/openFrameworks/addons/obj/linux64/Release/ofxXmlSettings/libs/tinyxmlparser.o  /home/nanu/visuals/openFrameworks/libs/openFrameworksCompiled/lib/linux64/libopenFrameworks.a   -Wl,-rpath=./libs:./bin/libs -Wl,--as-needed -Wl,--gc-sections -L/home/nanu/visuals/openFrameworks/libs/fmodex/lib/linux64/ -lfmodex /home/nanu/visuals/openFrameworks/libs/kiss/lib/linux64/libkiss.a /home/nanu/visuals/openFrameworks/libs/libxml2/lib/linux64/libxml2.a /home/nanu/visuals/openFrameworks/libs/poco/lib/linux64/libPocoZip.a /home/nanu/visuals/openFrameworks/libs/poco/lib/linux64/libPocoUtil.a /home/nanu/visuals/openFrameworks/libs/poco/lib/linux64/libPocoNetSSL.a /home/nanu/visuals/openFrameworks/libs/poco/lib/linux64/libPocoFoundation.a /home/nanu/visuals/openFrameworks/libs/poco/lib/linux64/libPocoXML.a /home/nanu/visuals/openFrameworks/libs/poco/lib/linux64/libPocoJSON.a /home/nanu/visuals/openFrameworks/libs/poco/lib/linux64/libPocoCrypto.a /home/nanu/visuals/openFrameworks/libs/poco/lib/linux64/libPocoNet.a /home/nanu/visuals/openFrameworks/libs/svgtiny/lib/linux64/libsvgtiny.a /home/nanu/visuals/openFrameworks/libs/tess2/lib/linux64/libtess2.a   -lz -lgstapp-1.0 -lgstvideo-1.0 -lgstbase-1.0 -lgstreamer-1.0 -ludev -lfontconfig -lfreetype -lsndfile -lopenal -lssl -lcrypto -lcurl -lglfw -lrtaudio -lpulse-simple -lpulse -lasound -lGLEW -lGLU -lGL -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lglut -lX11 -lXrandr -lXxf86vm -lXi -lXcursor -ldl -lpthread -lfreeimage -lboost_filesystem -lboost_system -lpugixml -luriparser -lXinerama
/home/nanu/visuals/openFrameworks/libs/svgtiny/lib/linux64/libsvgtiny.a(libxml_xmlparser.o): In Funktion `xml_parser_start_document':
libxml_xmlparser.c:(.text+0x198): Nicht definierter Verweis auf `xmlSAX2StartDocument'
/home/nanu/visuals/openFrameworks/libs/svgtiny/lib/linux64/libsvgtiny.a(libxml_xmlparser.o): In Funktion `xml_parser_end_element_ns':
libxml_xmlparser.c:(.text+0xe9f): Nicht definierter Verweis auf `xmlSAX2EndElementNs'
/home/nanu/visuals/openFrameworks/libs/svgtiny/lib/linux64/libsvgtiny.a(libxml_xmlparser.o): In Funktion `xml_parser_start_element_ns':
libxml_xmlparser.c:(.text+0xf7c): Nicht definierter Verweis auf `xmlSAX2StartElementNs'
/home/nanu/visuals/openFrameworks/libs/svgtiny/lib/linux64/libsvgtiny.a(libxml_xmlparser.o): In Funktion `xml_parser_end_document':
libxml_xmlparser.c:(.text+0x104d): Nicht definierter Verweis auf `xmlSAX2EndDocument'
/home/nanu/visuals/openFrameworks/libs/svgtiny/lib/linux64/libsvgtiny.a(libxml_xmlparser.o): In Funktion `dom_xml_parser_create':
libxml_xmlparser.c:(.text+0x1160): Nicht definierter Verweis auf `xmlCreatePushParserCtxt'
libxml_xmlparser.c:(.text+0x1179): Nicht definierter Verweis auf `xmlCtxtUseOptions'
libxml_xmlparser.c:(.text+0x11f4): Nicht definierter Verweis auf `xmlFreeParserCtxt'
libxml_xmlparser.c:(.text+0x122c): Nicht definierter Verweis auf `xmlFreeParserCtxt'
libxml_xmlparser.c:(.text+0x124c): Nicht definierter Verweis auf `xmlFreeParserCtxt'
/home/nanu/visuals/openFrameworks/libs/svgtiny/lib/linux64/libsvgtiny.a(libxml_xmlparser.o): In Funktion `dom_xml_parser_destroy':
libxml_xmlparser.c:(.text+0x12f4): Nicht definierter Verweis auf `xmlFreeDoc'
libxml_xmlparser.c:(.text+0x12fc): Nicht definierter Verweis auf `xmlFreeParserCtxt'
/home/nanu/visuals/openFrameworks/libs/svgtiny/lib/linux64/libsvgtiny.a(libxml_xmlparser.o): In Funktion `dom_xml_parser_parse_chunk':
libxml_xmlparser.c:(.text+0x131f): Nicht definierter Verweis auf `xmlParseChunk'
/home/nanu/visuals/openFrameworks/libs/svgtiny/lib/linux64/libsvgtiny.a(libxml_xmlparser.o): In Funktion `dom_xml_parser_completed':
libxml_xmlparser.c:(.text+0x136b): Nicht definierter Verweis auf `xmlParseChunk'
/home/nanu/visuals/openFrameworks/libs/svgtiny/lib/linux64/libsvgtiny.a(libxml_xmlparser.o): In Funktion `xml_parser_external_subset':
libxml_xmlparser.c:(.text+0x74): Nicht definierter Verweis auf `xmlSAX2ExternalSubset'
/home/nanu/visuals/openFrameworks/libs/svgtiny/lib/linux64/libsvgtiny.a(libxml_xmlparser.o): In Funktion `xml_parser_cdata_block':
libxml_xmlparser.c:(.text+0x84): Nicht definierter Verweis auf `xmlSAX2CDataBlock'
/home/nanu/visuals/openFrameworks/libs/svgtiny/lib/linux64/libsvgtiny.a(libxml_xmlparser.o): In Funktion `xml_parser_get_parameter_entity':
libxml_xmlparser.c:(.text+0x94): Nicht definierter Verweis auf `xmlSAX2GetParameterEntity'
/home/nanu/visuals/openFrameworks/libs/svgtiny/lib/linux64/libsvgtiny.a(libxml_xmlparser.o): In Funktion `xml_parser_comment':
libxml_xmlparser.c:(.text+0xa4): Nicht definierter Verweis auf `xmlSAX2Comment'
/home/nanu/visuals/openFrameworks/libs/svgtiny/lib/linux64/libsvgtiny.a(libxml_xmlparser.o): In Funktion `xml_parser_characters':
libxml_xmlparser.c:(.text+0xb4): Nicht definierter Verweis auf `xmlSAX2Characters'
/home/nanu/visuals/openFrameworks/libs/svgtiny/lib/linux64/libsvgtiny.a(libxml_xmlparser.o): In Funktion `xml_parser_reference':
libxml_xmlparser.c:(.text+0xc4): Nicht definierter Verweis auf `xmlSAX2Reference'
/home/nanu/visuals/openFrameworks/libs/svgtiny/lib/linux64/libsvgtiny.a(libxml_xmlparser.o): In Funktion `xml_parser_set_document_locator':
libxml_xmlparser.c:(.text+0xd4): Nicht definierter Verweis auf `xmlSAX2SetDocumentLocator'
/home/nanu/visuals/openFrameworks/libs/svgtiny/lib/linux64/libsvgtiny.a(libxml_xmlparser.o): In Funktion `xml_parser_unparsed_entity_decl':
libxml_xmlparser.c:(.text+0xe4): Nicht definierter Verweis auf `xmlSAX2UnparsedEntityDecl'
/home/nanu/visuals/openFrameworks/libs/svgtiny/lib/linux64/libsvgtiny.a(libxml_xmlparser.o): In Funktion `xml_parser_element_decl':
libxml_xmlparser.c:(.text+0xf4): Nicht definierter Verweis auf `xmlSAX2ElementDecl'
/home/nanu/visuals/openFrameworks/libs/svgtiny/lib/linux64/libsvgtiny.a(libxml_xmlparser.o): In Funktion `xml_parser_attribute_decl':
libxml_xmlparser.c:(.text+0x104): Nicht definierter Verweis auf `xmlSAX2AttributeDecl'
/home/nanu/visuals/openFrameworks/libs/svgtiny/lib/linux64/libsvgtiny.a(libxml_xmlparser.o): In Funktion `xml_parser_notation_decl':
libxml_xmlparser.c:(.text+0x114): Nicht definierter Verweis auf `xmlSAX2NotationDecl'
/home/nanu/visuals/openFrameworks/libs/svgtiny/lib/linux64/libsvgtiny.a(libxml_xmlparser.o): In Funktion `xml_parser_entity_decl':
libxml_xmlparser.c:(.text+0x124): Nicht definierter Verweis auf `xmlSAX2EntityDecl'
/home/nanu/visuals/openFrameworks/libs/svgtiny/lib/linux64/libsvgtiny.a(libxml_xmlparser.o): In Funktion `xml_parser_get_entity':
libxml_xmlparser.c:(.text+0x134): Nicht definierter Verweis auf `xmlSAX2GetEntity'
/home/nanu/visuals/openFrameworks/libs/svgtiny/lib/linux64/libsvgtiny.a(libxml_xmlparser.o): In Funktion `xml_parser_resolve_entity':
libxml_xmlparser.c:(.text+0x144): Nicht definierter Verweis auf `xmlSAX2ResolveEntity'
/home/nanu/visuals/openFrameworks/libs/svgtiny/lib/linux64/libsvgtiny.a(libxml_xmlparser.o): In Funktion `xml_parser_has_external_subset':
libxml_xmlparser.c:(.text+0x154): Nicht definierter Verweis auf `xmlSAX2HasExternalSubset'
/home/nanu/visuals/openFrameworks/libs/svgtiny/lib/linux64/libsvgtiny.a(libxml_xmlparser.o): In Funktion `xml_parser_has_internal_subset':
libxml_xmlparser.c:(.text+0x164): Nicht definierter Verweis auf `xmlSAX2HasInternalSubset'
/home/nanu/visuals/openFrameworks/libs/svgtiny/lib/linux64/libsvgtiny.a(libxml_xmlparser.o): In Funktion `xml_parser_is_standalone':
libxml_xmlparser.c:(.text+0x174): Nicht definierter Verweis auf `xmlSAX2IsStandalone'
/home/nanu/visuals/openFrameworks/libs/svgtiny/lib/linux64/libsvgtiny.a(libxml_xmlparser.o): In Funktion `xml_parser_internal_subset':
libxml_xmlparser.c:(.text+0x184): Nicht definierter Verweis auf `xmlSAX2InternalSubset'
collect2: error: ld returned 1 exit status

Build using Custom XCode Version

Hey, I have Xcode DP 5.0 installed and your script is currently using it as the default regardless of what I change to

XS="xcode-select -print-path" # stupid hack to keep my syntax highlighting from breaking :P
XCODE_DEV_ROOT="/Applications/Xcode.app/Contents/Developer"

So this also doesn't work:

XS="/Applications/Xcode.app/Contents/Developer"
XCODE_DEV_ROOT=

FYI: xcode-select -print-path: returns:
"/Applications/Xcode5-DP.app/Contents/Developer"

Any ideas? (I want to build against 4.x Xcode)

64bit / libc++ formulas - check list ( all platforms )

This is an issue for tracking progress on 64bit / libc++ support for all platforms

crucial:

lower priority:

  • tinyxml ( compiles from source - good to go )
  • oscpack - (compiles from source - good to go. openframeworks/openFrameworks#3210 )
  • glut - no 64bit GLUT - 0.9.0 and on focus on GLFW
  • svgTiny ( compiles from source )

( previous discussion: http://dev.openframeworks.cc/pipermail/of-dev-openframeworks.cc/2014-June/033583.html )

download stage does not fail when a version is changed

We probably need some way to mark versions during the build process so that when a new version is added, it doesn't skip the download process and build an old version.

This can be avoided by deleting the build directory, but might be solved more easily by appending the source directory with the version tag hash.

Explicit -stdlib=libstdc++ for Darwin32 on 10.9+

I'm sure many have figured this out already, but since 10.9 the default stdlib used by osx is -stdlib=libc++. Thus, formulas like Poco don't (by default) used -stdlib=libstdc++ even when choosing the previously compatible 32-bit clang versions.

I'm updating the poco scripts to be explicit.

Poco Fails on OS X build

Ran

./apothecary -t osx update core

got:
** Building library (release) /Users/focus/Documents/Xcode/apothecary/scripts/apothecary/build/poco/lib/Darwin/i386/libPocoDataSQLite.a
libtool -static -o /Users/focus/Documents/Xcode/apothecary/scripts/apothecary/build/poco/lib/Darwin/i386/libPocoDataSQLite.a /Users/focus/Documents/Xcode/apothecary/scripts/apothecary/build/poco/Data/SQLite/obj/Darwin/i386/release_static/Binder.o /Users/focus/Documents/Xcode/apothecary/scripts/apothecary/build/poco/Data/SQLite/obj/Darwin/i386/release_static/Extractor.o /Users/focus/Documents/Xcode/apothecary/scripts/apothecary/build/poco/Data/SQLite/obj/Darwin/i386/release_static/SessionImpl.o /Users/focus/Documents/Xcode/apothecary/scripts/apothecary/build/poco/Data/SQLite/obj/Darwin/i386/release_static/Connector.o /Users/focus/Documents/Xcode/apothecary/scripts/apothecary/build/poco/Data/SQLite/obj/Darwin/i386/release_static/SQLiteException.o /Users/focus/Documents/Xcode/apothecary/scripts/apothecary/build/poco/Data/SQLite/obj/Darwin/i386/release_static/SQLiteStatementImpl.o /Users/focus/Documents/Xcode/apothecary/scripts/apothecary/build/poco/Data/SQLite/obj/Darwin/i386/release_static/Utility.o /Users/focus/Documents/Xcode/apothecary/scripts/apothecary/build/poco/Data/SQLite/obj/Darwin/i386/release_static/sqlite3.o
ranlib /Users/focus/Documents/Xcode/apothecary/scripts/apothecary/build/poco/lib/Darwin/i386/libPocoDataSQLite.a
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C /Users/focus/Documents/Xcode/apothecary/scripts/apothecary/build/poco/Data/ODBC
ODBC.make:45: *** No ODBC library found. Please install unixODBC or iODBC or specify ODBCLIBDIR and try again. Stop.
make: *** [Data/ODBC-libexec] Error 2

FreeImage not Compiling

I am using the docker image:

$ sudo docker run -v $(pwd):/apothecary openframeworks/apothecary:android 
 /apothecary/apothecary/apothecary -t android -a armv7 update FreeImage

And getting following error:

In file included from /opt/ndk_dir/android-ndk-r15c/sources/android/support/include/math.h:31:
/opt/ndk_dir/android-ndk-r15c/sources/cxx-stl/llvm-libc++/include/math.h:661:91: error: use of undeclared identifier 'acosl'
inline _LIBCPP_INLINE_VISIBILITY long double acos(long double __lcpp_x) _NOEXCEPT {return acosl(__lcpp_x);}

gcc6 broken

A recent change in the travis VMs has made the custom packages we use for gcc6 incompatible.

openCV + Android cause link error

Problem
I can not link oF and openCV library on Android environment.
I had many link error related to missing reference of std::*** and tbb::***
(with AndroidOpenCvExample, using Android Studio 2.3.3)

I just check situation and found following things.

  • opencv.sh formula does not build library for android but just download OpenCV-3.1.0-android-sdk.zip.
  • It already contains compiled .a files. But looks it is for libstdc++?
  • and also it might need WITH_TBB = OFF flag

Steps to Include Official Packaged Addons

Options:

  • Add the addon formulas in with the normal formula's folder - Let the downloader script deal with managing on the other end (so package normally).
  • Seperate Formula Folder for Addons, then built to special folder to be dealt with by downloader scripts.
  • ??

add special "core" and "addons" targets

It probably make more sense to have special keywords for the update/buidl targets instead of just building all core libs when not having any targets:

apothecary update core addons

would update all core and addon libs.

Support for building multiple OS X ARCH + lipo?

The README mentions two strategies to build fat, the first is a manual approach (build, rename folder, build other arch and lipo) and the second:

2 build as arch1, arch2, ... simultaneously -> the linking system automatically creates a fat lib

Both methods work, but one may be easier than the other based on the library's build system. For method one, you probably need to copy the built lib file after each build step and rename it based on the architecture or it may be overwritten by the next build.

Note: lipo -info can tell you the architectures currently in a compiled lib: lipo -info libsomelib.a

Does this mean the apothecary tool itself can be run with multiple architectures and it will lipo on our behalf? I tried

$ ./apothecary -a 32 -a 64 -t osx OpenCV

And it seemed as though the second architecture overrode the first. The reason I'm asking about this specific behavior is because the OS X 64-bit/C++11 plan for OF 0.9.0 is shaping up to use libstdc++ for 32 and libc++ for 64. We could use the first strategy but if there were direct tooling support that would definitely help avoid errors that could otherwise be introduced through the manual process.

CC @admsyn

Sometimes apothecaryDependencies actions are not taken in manual mode.

In this case, since cairo was already downloaded and the dependent packages were not yet, the cairo download step (and the included apothecaryDependencies download step) were not called. Probably best to just throw a message here that tells the user to delete everything (except the _buildroot?) from their build directory.

Apothecary not working on Raspbian Stretch

OF isn't compiling on Pi 3 B+ because of Poco issues. If I try to use apothecary to update, I get the below error. I also had the same issue on an Odroid XU4 running Ubuntu Mate.

./apothecary -tlinuxarmv6l update poco
OF: /home/pi/openFrameworks/scripts/apothecary/apothecary/../../../
APOTHECARY: /home/pi/openFrameworks/scripts/apothecary/apothecary
FORMULAS: /home/pi/openFrameworks/scripts/apothecary/apothecary/formulas
BUILD: /home/pi/openFrameworks/scripts/apothecary/apothecary/build
LIBS_DIR: /home/pi/openFrameworks/scripts/apothecary/apothecary/../
ADDONS: /home/pi/openFrameworks/scripts/apothecary/apothecary/../../../addons
REL_ADDONS_DIR: /home/pi/openFrameworks/scripts/apothecary/apothecary/../../../addons
./apothecary: line 1238: TOOLCHAIN_PREFIX: unbound variable

What should TOOLCHAIN_PREFIX be set to?

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.