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

configure fails on FreeBSD in JUCE #648

Open
yurivict opened this issue Jun 4, 2023 · 3 comments
Open

configure fails on FreeBSD in JUCE #648

yurivict opened this issue Jun 4, 2023 · 3 comments

Comments

@yurivict
Copy link
Contributor

yurivict commented Jun 4, 2023

Environment

  • OS: FreeBSD 13.2
  • Giada version: 0.25.0

Describe the bug

-- Configuring juceaide
-- Building juceaide
CMake Error at src/deps/juce/extras/Build/juceaide/CMakeLists.txt:141 (message):
  Failed to build juceaide

  [0/2] Re-checking globbed directories...

  [1/10] Building CXX object
  CMakeFiles/juce_lv2_helper.dir/modules/juce_audio_plugin_client/LV2/juce_LV2TurtleDumpProgram.cpp.o


  [2/10] Linking CXX executable juce_lv2_helper

  [3/10] Building CXX object
  extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_data_structures/juce_data_structures.cpp.o


  [4/10] Building CXX object
  extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_events/juce_events.cpp.o


  [5/10] Building CXX object
  extras/Build/juceaide/CMakeFiles/juceaide.dir/__/juce_build_tools/juce_build_tools.cpp.o


  [6/10] Building CXX object
  extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_core/juce_core.cpp.o


  FAILED:
  extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_core/juce_core.cpp.o


  /usr/local/libexec/ccache/c++ -DDEBUG=1
  -DJUCE_DISABLE_JUCE_VERSION_PRINTING=1
  -DJUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1
  -DJUCE_MODULE_AVAILABLE_juce_build_tools=1
  -DJUCE_MODULE_AVAILABLE_juce_core=1
  -DJUCE_MODULE_AVAILABLE_juce_data_structures=1
  -DJUCE_MODULE_AVAILABLE_juce_events=1
  -DJUCE_MODULE_AVAILABLE_juce_graphics=1
  -DJUCE_MODULE_AVAILABLE_juce_gui_basics=1 -DJUCE_STANDALONE_APPLICATION=1
  -DJUCE_USE_CURL=0 -DLINUX=1 -D_DEBUG=1
  -I/usr/ports/audio/giada/work/.build/src/deps/juce/tools/extras/Build/juceaide/juceaide_artefacts/JuceLibraryCode
  -I/usr/ports/audio/giada/work/giada-0.25.0/src/deps/juce/extras/Build
  -I/usr/ports/audio/giada/work/giada-0.25.0/src/deps/juce/modules
  -I/usr/local/include/freetype2 -I/usr/local/include/libpng16 -O2 -pipe
  -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing
  -pthread -I/usr/local/include/rtmidi -D__UNIX_JACK__ -I/usr/local/include
  -isystem /usr/local/include -std=c++17 -g -O0 -Wall -Wshadow-all
  -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter
  -Wconversion -Wsign-compare -Wint-conversion -Wconditional-uninitialized
  -Wconstant-conversion -Wsign-conversion -Wbool-conversion -Wextra-semi
  -Wunreachable-code -Wcast-align -Wshift-sign-overflow -Wmissing-prototypes
  -Wnullable-to-nonnull-conversion -Wno-ignored-qualifiers -Wswitch-enum
  -Wpedantic -Wdeprecated -Wzero-as-null-pointer-constant
  -Wunused-private-field -Woverloaded-virtual -Wreorder
  -Winconsistent-missing-destructor-override -MD -MT
  extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_core/juce_core.cpp.o
  -MF
  extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_core/juce_core.cpp.o.d
  -o
  extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_core/juce_core.cpp.o
  -c
  /usr/ports/audio/giada/work/giada-0.25.0/src/deps/juce/modules/juce_core/juce_core.cpp


  In file included from
  /usr/ports/audio/giada/work/giada-0.25.0/src/deps/juce/modules/juce_core/juce_core.cpp:45:


  /usr/include/sys/timeb.h:44:2: warning: "this file includes <sys/timeb.h>
  which is deprecated" [-W#warnings]

  #warning "this file includes <sys/timeb.h> which is deprecated"

   ^

  In file included from
  /usr/ports/audio/giada/work/giada-0.25.0/src/deps/juce/modules/juce_core/juce_core.cpp:159:



  /usr/ports/audio/giada/work/giada-0.25.0/src/deps/juce/modules/juce_core/system/juce_SystemStats.cpp:180:23:
  warning: comparison of integers of different signs: 'int' and 'size_t' (aka
  'unsigned long') [-Wsign-compare]

      for (int i = 0; i < frames; ++i)
                      ~ ^ ~~~~~~

  In file included from
  /usr/ports/audio/giada/work/giada-0.25.0/src/deps/juce/modules/juce_core/juce_core.cpp:193:



  /usr/ports/audio/giada/work/giada-0.25.0/src/deps/juce/modules/juce_core/native/juce_posix_SharedCode.h:930:78:
  error: use of undeclared identifier 'SCHED_IDLE'

           const auto backgroundSched = prio == Thread::Priority::background ? SCHED_IDLE
                                                                               ^

  In file included from
  /usr/ports/audio/giada/work/giada-0.25.0/src/deps/juce/modules/juce_core/juce_core.cpp:221:



  /usr/ports/audio/giada/work/giada-0.25.0/src/deps/juce/modules/juce_core/native/juce_linux_Network.cpp:37:43:
  warning: cast from 'struct sockaddr *' to 'struct sockaddr_dl *' increases
  required alignment from 1 to 2 [-Wcast-align]

                  struct sockaddr_dl* sdl = (struct sockaddr_dl*) i->ifa_addr;
                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  In file included from
  /usr/ports/audio/giada/work/giada-0.25.0/src/deps/juce/modules/juce_core/juce_core.cpp:228:



  /usr/ports/audio/giada/work/giada-0.25.0/src/deps/juce/modules/juce_core/native/juce_linux_SystemStats.cpp:156:33:
  warning: implicit conversion from 'juce::int64' (aka 'long long') to
  'double' may lose precision [-Wimplicit-int-float-conversion]

      return result == 0 ? (int) (memory / 1e6) : 0;
                                  ^~~~~~ ~

  4 warnings and 1 error generated.

  [7/10] Building CXX object
  extras/Build/juceaide/CMakeFiles/juceaide.dir/Main.cpp.o

  [8/10] Building CXX object
  extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_graphics/juce_graphics.cpp.o


  [9/10] Building CXX object
  extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_gui_basics/juce_gui_basics.cpp.o


  In file included from
  /usr/ports/audio/giada/work/giada-0.25.0/src/deps/juce/modules/juce_gui_basics/juce_gui_basics.cpp:333:



  /usr/ports/audio/giada/work/giada-0.25.0/src/deps/juce/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp:3931:7:
  warning: no previous prototype for function 'createSnapshotOfNativeWindow'
  [-Wmissing-prototypes]

  Image createSnapshotOfNativeWindow (void* window)

        ^

  
  /usr/ports/audio/giada/work/giada-0.25.0/src/deps/juce/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp:3931:1:
  note: declare 'static' if the function is not intended to be used outside
  of this translation unit

  Image createSnapshotOfNativeWindow (void* window)

  ^

  static

  1 warning generated.

  ninja: build stopped: subcommand failed.

To Reproduce
Regular configure


We have the juce-7.0.5 package.
Could you please consider allowing to use the external package for JUCE?

@gvnnz
Copy link
Contributor

gvnnz commented Jun 11, 2023

Thanks for reporting, @yurivict. I see the following error:

error: use of undeclared identifier 'SCHED_IDLE'

It looks like the SCHED_IDLE flag is missing in FreeBSD. I guess it's worth reporting also to JUCE devs.

@yurivict
Copy link
Contributor Author

It looks like the SCHED_IDLE flag is missing in FreeBSD. I guess it's worth reporting also to JUCE devs.

Yes, there are some FreeBSD incompatibilities in JUCE.

But we have the FreeBSD package where this specific problem is patched.
JUCE provides cmake files, so it is discoverable with find_package(JUCE REQUIRED).

Can giada be built with the external;y installed JUCE?

@gvnnz
Copy link
Contributor

gvnnz commented Jun 12, 2023

Can giada be built with the external;y installed JUCE?

I guess so, but at the moment our pipeline is full with stuff from the upcoming version 1.0.0. Patches are welcome, though!

Edit: see also #526

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

No branches or pull requests

2 participants