Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix OSX xcode6.1 brew update and jsoncpp issues #47

Merged
merged 1 commit into from
Feb 19, 2016
Merged

Fix OSX xcode6.1 brew update and jsoncpp issues #47

merged 1 commit into from
Feb 19, 2016

Conversation

zcsizmadia
Copy link
Contributor

No description provided.

@hudokkow
Copy link
Contributor

Thanks!

hudokkow added a commit that referenced this pull request Feb 19, 2016
Fix OSX xcode6.1 brew update and jsoncpp issues
@hudokkow hudokkow merged commit 501f56b into kodi-pvr:master Feb 19, 2016
@ksooo
Copy link
Member

ksooo commented Apr 28, 2016

@zcsizmadia @hudokkow seems to cause linker error:

[100%] Linking CXX shared library pvr.argustv.dylib
Undefined symbols for architecture x86_64:
  "Json::Value::operator=(Json::Value)", referenced from:
      cActiveRecording::Parse(Json::Value const&) in activerecording.cpp.o
      ArgusTV::TuneLiveStream(std::__1::basic_string, std::__1::allocator > const&, ArgusTV::ChannelType, std::__1::basic_string, std::__1::allocator >, std::__1::basic_string, std::__1::allocator >&) in argustvrpc.cpp.o
      ArgusTV::GetFullRecordingsForTitle(std::__1::basic_string, std::__1::allocator > const&, Json::Value&) in argustvrpc.cpp.o
      ArgusTV::AddOneTimeSchedule(std::__1::basic_string, std::__1::allocator > const&, long, std::__1::basic_string, std::__1::allocator > const&, int, int, int, Json::Value&) in argustvrpc.cpp.o
      ArgusTV::AddManualSchedule(std::__1::basic_string, std::__1::allocator > const&, long, long, std::__1::basic_string, std::__1::allocator > const&, int, int, int, Json::Value&) in argustvrpc.cpp.o
      cUpcomingRecording::Parse(Json::Value const&) in upcomingrecording.cpp.o
  "Json::Value::operator[](int)", referenced from:
      CEventsThread::HandleEvents(Json::Value) in EventsThread.cpp.o
      cPVRClientArgusTV::ShareErrorsFound() in pvrclient-argustv.cpp.o
      cPVRClientArgusTV::GetEpg(ADDON_HANDLE_STRUCT*, PVR_CHANNEL const&, long, long) in pvrclient-argustv.cpp.o
      cPVRClientArgusTV::GetChannels(ADDON_HANDLE_STRUCT*, bool) in pvrclient-argustv.cpp.o
      cPVRClientArgusTV::GetChannelGroups(ADDON_HANDLE_STRUCT*, bool) in pvrclient-argustv.cpp.o
      cPVRClientArgusTV::GetChannelGroupMembers(ADDON_HANDLE_STRUCT*, PVR_CHANNEL_GROUP const&) in pvrclient-argustv.cpp.o
      cPVRClientArgusTV::GetNumRecordings() in pvrclient-argustv.cpp.o
      ...
  "Json::Value::operator[](int) const", referenced from:
      Json::printValueTree(Json::Value const&, std::__1::basic_string, std::__1::allocator > const&) in utils.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[5]: *** [pvr.argustv.2.2.1.dylib] Error 1

Will revert the commit.

@ksooo
Copy link
Member

ksooo commented Apr 28, 2016

UPDATE: Did not revert as this does not fix the problem.

@zcsizmadia could you please take a look? Other addons are also suffering from the linker problem.

@hudokkow
Copy link
Contributor

Uh? This was building fine until 45a64b7 got merged. See build history.
Sorry for not being more helpful but I haven't been paying attention to PVR for some time now.

@ksooo
Copy link
Member

ksooo commented Apr 29, 2016

Whatever the reason is, currently this and other pvr add-ons using cppjson cannot be built on macos using the current travis script. Generally they build, but not with travis.

@zcsizmadia
Copy link
Contributor Author

I think problem is that in brew json got updated to 1.6.5. I've noticed that the travis scripts are changed now to use absolute path in the cmake call. I do not know if it by design or a side effect, but to compile the addon dependencies statically into the addon lib, you have to use absolute paths, otherwise the addon dependencies are ignored. (i did this all the time with windows, see my build example in the Readme in pvr.hdhomerun).
One solution is that we remove the brew install from the travis script, or we install an older version (0.6.x) of json with brew.
How does the Jenkins build the addon (Statically or dynamically linking against the deps)?
If we do not mind statically bilding the deps into the addon on travis, we can remove the whole apt-get/brew magic.

I did a test build on pvr.hdhomerun where I removed the whole before_install script from travis.yml, and everything builds.

@zcsizmadia
Copy link
Contributor Author

Created a PR to pvr.hdhomerun ro remove the whole before_install script and seems to solve the travis build issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants