Introjucer hangs


#1

Well that didn't take long... I'm normally strongly against depending on a GUI tool of a dependant library in order to configure my project, but I thought well, just give that Introjucer thing a try. Now the application hangs when I to right-click Add New CPP & Header File, no output in the console.

So, what are the ways to build against JUCE as a regular library, in of a slightly broader context than just 'being a JUCE application' so everything has to be done within JUCE? It seems that somehow the library itself isn't even being compiled inside the JUCE tree, so how to proceed from here? I need a compiled version of the library on disk, that's all I will be able to locate headers and everything myself using the build system of my choice for this project (which is CMake). Or are there by chance even CMake module configs around for a deployed JUCE version?

System information: 

Current Arch Linux running Linux 4.2.3-1-ARCH on Intel(R) Core(TM)2 Duo CPU P8700

lspci:

00:00.0 Host bridge: Intel Corporation Mobile 4 Series Chipset Memory Controller Hub (rev 07)
00:01.0 PCI bridge: Intel Corporation Mobile 4 Series Chipset PCI Express Graphics Port (rev 07)
00:19.0 Ethernet controller: Intel Corporation 82567LM Gigabit Network Connection (rev 03)
00:1a.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 (rev 03)
00:1a.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 (rev 03)
00:1a.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 (rev 03)
00:1a.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 (rev 03)
00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 1 (rev 03)
00:1c.1 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 2 (rev 03)
00:1c.2 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 3 (rev 03)
00:1c.3 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 4 (rev 03)
00:1d.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 03)
00:1d.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 03)
00:1d.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 03)
00:1d.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 93)
00:1f.0 ISA bridge: Intel Corporation ICH9M-E LPC Interface Controller (rev 03)
00:1f.2 SATA controller: Intel Corporation 82801IBM/IEM (ICH9M/ICH9M-E) 4 port SATA Controller [AHCI mode] (rev 03)
00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 03)
01:00.0 VGA compatible controller: NVIDIA Corporation G98M [Quadro NVS 160M] (rev a1)
03:01.0 FireWire (IEEE 1394): Ricoh Co Ltd R5C832 IEEE 1394 Controller (rev 04)
03:01.1 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 21)
03:01.2 System peripheral: Ricoh Co Ltd R5C843 MMC Host Controller (rev 11)
0c:00.0 Network controller: Intel Corporation Ultimate N WiFi Link 5300

ldd:

    linux-vdso.so.1 (0x00007ffcde55d000)
    libX11.so.6 => /usr/lib/libX11.so.6 (0x00007fd78fa93000)
    libXext.so.6 => /usr/lib/libXext.so.6 (0x00007fd78f881000)
    libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0x00007fd78f67e000)
    libdl.so.2 => /usr/lib/libdl.so.2 (0x00007fd78f47a000)
    libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00007fd78f1bd000)
    libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007fd78efa0000)
    librt.so.1 => /usr/lib/librt.so.1 (0x00007fd78ed98000)
    libcurl.so.4 => /usr/lib/libcurl.so.4 (0x00007fd78eb24000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007fd78e7a2000)
    libm.so.6 => /usr/lib/libm.so.6 (0x00007fd78e4a4000)
    libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007fd78e28e000)
    libc.so.6 => /usr/lib/libc.so.6 (0x00007fd78deea000)
    libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007fd78dcc7000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fd78fdd5000)
    libz.so.1 => /usr/lib/libz.so.1 (0x00007fd78dab1000)
    libbz2.so.1.0 => /usr/lib/libbz2.so.1.0 (0x00007fd78d8a1000)
    libpng16.so.16 => /usr/lib/libpng16.so.16 (0x00007fd78d66c000)
    libharfbuzz.so.0 => /usr/lib/libharfbuzz.so.0 (0x00007fd78d40a000)
    libidn.so.11 => /usr/lib/libidn.so.11 (0x00007fd78d1d6000)
    libssh2.so.1 => /usr/lib/libssh2.so.1 (0x00007fd78cfaa000)
    libssl.so.1.0.0 => /usr/lib/libssl.so.1.0.0 (0x00007fd78cd30000)
    libcrypto.so.1.0.0 => /usr/lib/libcrypto.so.1.0.0 (0x00007fd78c8b9000)
    libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x00007fd78c66c000)
    libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00007fd78c387000)
    libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x00007fd78c156000)
    libcom_err.so.2 => /usr/lib/libcom_err.so.2 (0x00007fd78bf52000)
    libXau.so.6 => /usr/lib/libXau.so.6 (0x00007fd78bd4e000)
    libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007fd78bb48000)
    libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00007fd78b83a000)
    libgraphite2.so.3 => /usr/lib/libgraphite2.so.3 (0x00007fd78b60f000)
    libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x00007fd78b402000)
    libkeyutils.so.1 => /usr/lib/libkeyutils.so.1 (0x00007fd78b1fe000)
    libresolv.so.2 => /usr/lib/libresolv.so.2 (0x00007fd78afe7000)
    libpcre.so.1 => /usr/lib/libpcre.so.1 (0x00007fd78ad77000)​

Compiled with gcc 5.2.0. I hope this might help you finding the problem, however I have neither time to do it myself nor wait for you to do it, this is just for the future, since we have a critical project and I need this running now. So how do I deploy JUCE as a library?

Thanks!

EDIT:

Forgot, using proprietary nvidia driver 340.93

 


#2

The introjucer's just a tool to make it convenient to mange projects. We find it invaluable, but you don't have to use it, and many people don't. 

There is no "compiled" version of the library - all you need to do is to add its cpps and headers to your project directly, and it'll all work. If you have a look at one of the demo projects you should be able to see the code structure that you'd use for that.

Re: the menu not working on the introjucer, it's not a bug we've ever seen.. I don't understand what you're trying to tell us by posting a list of your hardware drivers (!?) but if you want us to look into the problem, then a stack trace would be a good start, or just a description of how we could reproduce it ourselves.


#3

Well... I just wanted to give you as much context information as possible (as I thought it is customary for bug reports) for things like "yeah we've had hangs with older nvidia driver versions on linux before" or the like. Well next time I will just complain ;)

Ok so there are no complex preprocessor defines, compiler options or anything which JUCE needs in order to build properly? In that case I will just write a CMake project to build it as a library as I desire, thought there should be something around from inside the project, it's a pretty unusual way to 'distribute' a library but ok, I can go with that.

Thank you!


#4

Ok so there are no complex preprocessor defines, compiler options or anything which JUCE needs in order to build properly?

Actually, there are a handful of defines that it needs, but you can just have a look inside one of the JuceHeader.h and AppConfig.h files in the demo projects.

(Something on my to-do list is to change things so that it'll work as a semi-headers-only library without any extra definitions)