Missing Vala Package Valaconfig.cmake - cmake

I'm starting to learn vala, after a couple of years working with java.
I have a sample application, that uses cmake to compile.
Compilation throws an error after I run the command
cmake ..
Could not find a package configuration file provided by Vala with any of the following names: ValaConfig.cmake vala -config.cmake
How do I solve this? I couldn't find anything on the net.
My system is Ubuntu 19.04 .
Thanks in advance for any help.

CMake is a build system that makes use of modules. So it's probably not finding the relevant Vala modules.
From this answer on Elementary OS Stack Exchange is looks like it is common practise for elementary OS projects to assume the modules are installed globally. That answer recommends apt install cmake-elementary.

Related

GNUstep - fatal error: 'objc/objc.h' file not found on Ubuntu 20.04

I have the following problem:
I am on Ubuntu 20.04 and I am trying to set up GNUstep which is required for certain source binaries I want to build
(for the sake of completion, the program I want to build is called Advanced Rendering Toollḱit, information can be found here: https://cgg.mff.cuni.cz/ART/).
When building with the clang-9 compiler, after invoking the make command, I receive this error message:
fatal error: 'objc/objc.h' file not found
I should mention that I am still fairly new to Linux in general. What I did was installing GNUstep via
sudo apt-get install gnustep gnustep-devel
as advised on the website (http://wiki.gnustep.org/index.php/GNUstep_under_Ubuntu_Linux). It resulted in receiving the mentioned error.
/usr/include/GNUstep/Foundation/Foundation.h:31:9: fatal error: 'objc/objc.h' file not found
The next thing I tried was to download the provided configuration scripts from the same webpage and execute them. When I did, I received the following feedback:
checking whether objc really works... no. I don't seem to be able to use your Objective-C compiler to produce
working binaries! Please check your Objective-C compiler installation.
If you are using gcc-3.x make sure that your compiler's libgcc_s and libobjc
can be found by the dynamic linker - usually that requires you to play
with LD_LIBRARY_PATH or /etc/ld.so.conf.
Please refer to your compiler installation instructions for more help.
configure: error: The Objective-C compiler does not work or is not installed properly.
Maybe I am getting something wrong, however, my whole intention of installing GNUstep is to make Objective-C programming possible on a non-Apple machine. Therefore I do not understand why it is complaining about a non-working Objective-C compiler (by the way, I end up with the same result when using gcc and g++ as compilers).
I did do some research and I came across some StackOverflow posts, suggesting me to install libobjc2, but I suspect this to be depreciated with Ubuntu 20.04.
I honestly don't know what's wrong and I highly appreciate a little push in the right direction! Many thanks in advance for helping me!
Although I cannot tell what exactly the bug was in my case, I got some external help and together we came up with a solution that worked for me.
For debugging purposes, we created a test user account in my Ubuntu environment and repeated the whole process. It worked flawlessly.
We concluded that something must have been wrong locally with regard to my user account. I am sure there was something wrong with my environment variables, although I failed to clearly identify the bug (I am a Linux beginner). I chose the easy way out, backed up important files, deleted and re-created my root user account and then it worked. I hope, this may help any other who has the same problem.
#skaak, thank you for your help and suggestions!
As people are pointing, if you want to use clang to compile objective C programs in Ubuntu you have to install libobjc2 (mainstream project here) but it's currently not packaged in Ubuntu. It's possible that there was a package with the same or similar name, as you found out, but that was a different thing. This manual installation worked for me:
wget https://github.com/gnustep/libobjc2/archive/v2.0.tar.gz
tar xvzf v2.0.tar.gz
cd libobjc2-2.0
mkdir build
cd build
export CC=`which clang`
export CXX=`which clang++`
cmake ..
make
sudo make install

How to integrate OpenNI, NITE libraries in CodeBlocks or Geany

I installed the OpenNI+NITE+kinect on ubuntu 12.10 today and the samples are working fine. (Ran NITE samples and they work like charm)
I want to start developing in Linux and I like to work with IDE. For ubuntu I have always used Geany or Codeblocks and i was wondering if there was a way to integrate OpenNI,NITE libraries to the IDE's so that I can write, execute, debug the code easily from the IDE itself.
I tried to add the libraries myself in geany but all my attempts failed. :/
Also, when I do make for Sample examples in OpenNI, I get *.d and *.o files but I dont seem to get the executable *.out . So i am not sure how to run the programs.
I am a novice programmer, just starting to learn, So please excuse the noobness in
questions.
Appreciate the Help.
Thanks
Generally if you're doing something non-trivial with Geany you will need to provide your own build system (even simple GNU Make files will do). Geany is intentionally build system agnostic and allows you to run arbitrary build commands which are described in the manual as well as in a helpful article on the wiki.
If you describe in more detail the errors/problems you referred to as "attempts failed" it will likely be possible to provide more concrete solutions.

Lattix with Understand for C++/Objective-C: API library missing error (Mac OSX)

I'd like to use lattix to analyse objective-c code (http://www.lattix.com/node/114).
Computer is a macbook with osx 10.7.4.
Lattix version is 7.8 (newest).
I am not sure which understand version to use, newest would be 3.0 build 635, but I have the same problem with understand 3.0 and 2.6 anyway.
Understand works fine (version 2.6 or 3.0), I can create a new understand project for an iOS objective-c project and name it *.udb.
Analysis within understand also work fine.
The problem is when I try to import it into lattix:
In lattix I do:
File -> new project -> profiles: all -> choose Module Type C/C++ (Understand) and add the udb file.
When creating a new project now I get this error:
"Error opening data ... Understand API library missing. Please install Understand."
Also tried understand 3.0 same problem.
Has someone got these two tools working on a mac and maybe had a similar issue?
Or does s.o. maybe has an alternative to lattix?
Big thanks in advance.
The link you have posted has the answer to your question at the third paragraph:
Please ensure that Understand for C++ is installed on your computer
with a valid license. On Windows, please ensure that the path contains
the directory (typically C:\Program Files\STI\bin\pc-win32). On
Linux, please set the environment variable STI_HOME to the top of your
Understand Installation.
One Japanese guide i found says
[For Linux]
After installing Understand 2.0, please set the
{Understand 2.0 installation directory} / scitools $ to STI_HOME
system environment variable.
Start the ($ {Lattix installation
directory} / Lattix / bin / ldm.sh) Lattix.
Might be helpful for Understand 3.0 as well

wxWindows 2.9 binary for windows

After an upgrade to the new Haskell Platform, my existing wxHaskell programs are broken.
They all seem to now require wxWidgets 2.9, for which I can't find any binary versions.
wxPack has 2.8, and beyond that one has to get a compiler and build it locally from what I see.
There are tutorials on this from various sources, each a few pages long, with various advice on setup, changing configurations, etc. Install wxConfig, install minGW compilers, setup configurations, rebuild, etc.
Is there any source of a simple binary install? I'd hope for some simple apt-get or cabal like tool, Haskell library tools (on Windows?) seem less integrated than others that I'm familiar with.
(Update) I did install and compile wxWidgets locally, and still cannot get the wxHaskell components to install. I'm sure that all of this just requires some fairly simple details, but again after some time already, hope not to have to spend a lot more time on this, and wish it was more automated!
Configuring wxc-0.90.0.3...
Configuring wxc to build against wxWidgets 2.9
setup.exe: Missing dependencies on foreign libraries:
* Missing C libraries: wxmsw29ud_all, wxtiffd, wxjpegd, wxpngd, wxzlibd,
wxregexud, wxexpatd, wxregexud
This problem can usually be solved by installing the system packages that
provide these libraries (you may need the "-dev" versions). If the libraries
are already installed but in a non-standard location then you can use the
flags --extra-include-dirs= and --extra-lib-dirs= to specify where they are.
cabal: Error: some packages failed to install:
wx-0.90.0.1 depends on wxc-0.90.0.3 which failed to install.
wxc-0.90.0.3 failed during the configure step. The exception was: ExitFailure 1
wxcore-0.90.0.1 depends on wxc-0.90.0.3 which failed to install.
Yes, you can. CodeLite (C++ IDE I use) was recently upgraded to use wx29.
Since there are no binaries yet on repo, Dave set up some. Find all instruction in CodeLite's wiki below
wxWidgets 2.9 Packages and Repositories
If you are using windows Just go to download page for Codelite and download codelite with wxWidgets. Install it, copy the installed wxWidgets directory wherever it is needed!
Also it seems like there are official binaries. I have never tested download anything there so try yourself. The link is this one
Feel free to ask any question

Issues in using 3rd party libraries while developing Apache Modules

I am writing an Apache module for my internship. I am using C for this (I am not acquainted with Perl or Python that much).
I need to use an HTML Parser to solve the problem for which I am writing this module. I am considering libxml2 for this purpose.
I am confused how should I link the library in my module ? Should I link the library while compiling the module OR Should I use the LoadFile directive in the configuration file to load the library.
My main concern is that while I am developing this on Ubuntu, but I don't know what will be the OS running on the deployment server. So I want its deployment, complications free and successful.
EDIT: #Grim: thanks for replying :)
I compiled the module with the following commands:
apxs -I /usr/include/libxml2/ -c mod_xmltest.c
sudo apxs -n xmltest_module -i mod_xmltest.la
I believe this does not link the libraries in the module, I was getting "Unresolved Symbols" error when starting the server, so I used the LoadFile directive to load libxml2 library. It seems to work.
Do you think there can be any issues this way? I think this makes my module more portable, as on the deployment server the admin can explicitly specify the location of the libxml2 library.
You should link the library while compiling your module.
There are of course the usual portability issues (at least then it comes to a non-posix OS). In this case some of them are solved by apxc. It's impossible to say which complications that might occur, but nothing of what you describe should cause any.