How to set the target version info with Premake - version

I want to set the file version of my executables with Premake. Is this possible? How?
I've already looked at the Documentation for both versionlevel and versionconstants, but they aren't properly documented.

Related

Link with framework on macOS Mojave

Prior to the update to Mojave, my projects (which I build on the command line) linked perfectly fine with the frameworks I installed in /Library/Frameworks. Now, it seems that this path is no longer searched by the linker (include files within the frameworks are also not searched).
I’m aware I can specify the include and framework paths with -I and -F, respectively, but I thought this was the canonical way to link with an installed framework on macOS. Should I be doing this differently now?
I'm not sure about your exact build environment, but, following this comment on neovim, it seems like macOS 10.14 isn't installing all headers in the expected locations anymore.
After installing the package mentioned in the comment above, things worked fine again !
Edit: the actual way to install the headers (as found in abovementioned comment):
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
This is not triggered automatically during or after the update.

Linker directory for Qt5

I want to run an application based on Qt5 shared objects.
Although I have apt installed qt5-default, qttools5-dev and qttools5-dev-tools I get the error bellow:
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.7' not found
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5' not found
/usr/lib/x86_64-linux-gnu/libQt5Gui.so.5: version `Qt_5' not found
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5: version `Qt_5' not found
I have also tried to change some environment variables as LD_LIBRARY_PATH and DYLD_LIBRARY_PATH, resulted in no success!
What do you suggest?
When you built your application, which version of Qt5 did you build against? You can see this in QtCreator by looking at the currently selected kit:
If you just installed QtCreator from binary, it is shipped with it's own set of Qt5 shared libraries that your application is linked against, however your OS' version of those libraries (those installed from apt-get and similar) may not match.
When you try to run the application on it's own outside QtCreator, it may try to link against the OS version of the libs which are usually much older.
There are many ways to resolve this. One way, which would be preferred if you don't care for the newest version of Qt, is simply building towards the Qt libs supploed by the OS. You can do this by creating a new kit that specifies to build against the OS' libraries following this procedure.
Another way is shipping the shared libraries that you used from QtCreator together with the application so that those will override the OS ones. Usually just chucking them into the same folder as the executable will do the trick, as they will be found before the ones under /usr/lib/whatever etc.
Yet another way is to build your own static version of Qt and link with that. This has some benefits and some drawbacks. This is an advanced topic, so I won't go into detail (you can see here). But in this case the Qt libs are built into your app and will not depend on any external Qt libs version.

Quicklisp Libraries

I am currently running SBCL with quicklisp. I found an old project that I was trying to load with
(ql:quickload "project")
when I get the dependency error SYSTEM FILE-IO NOT FOUND. The dependencies in my project.asd file are
:depends-on (#:file-io #:cl-ppcre #:logv #:cl-mustache #:local-time
#:rutils #:alexandria)
None of the other dependencies give me any trouble, logv seems to be a discontinued log viewer, but I can't find anything concerning "file-io" in https://www.quicklisp.org/beta/releases.html. Is it just another discontinued library? Any ideas/advice would be appreciated.
The code provided by file-io only deals with slurping and spitting files. You can safely download the system from github and install it in Quicklisp's "local-projects" directory. Alternatively, you can use UIOP equivalent functions, which are well supported and available in most distributions.

Qt creator standard headers not found

I was having a lot of trouble getting code completion to work in QtCreator 3.0.1 on ubuntu 14.04.04LTS.
I went to the QT creator website and downloaded the latest version 3.6.1 and I think I've identified the issue but don't know how to fix it.
To replicate, I go to "File|New file or project|Non-Qt project|Plain C App
Then make a test.c file, qmake build system, i leave the "desktop kit" checked, and start.
As you can see here:
It can't find stdio.h
But if I specifically write:
#include "/usr/include/stdio.h" everything works!
The only place i can find an include path to search is in Tools|options|C++|File Naming -> Search paths and /usr/include is already there.
I've tried a C++ blank project just in case it only works for C++ files but it can't find the search path there either. Is there a setting somewhere else that's missing or wrong so I can use the standard naming scheme?
Ah! Found it. So the "Desktop Kits" for some silly reason never had a compiler selected even though during setup it automatically detected clang. Anyways, when I selected it from the Tools|Options|Build & Run|Kits tab|Desktop (default) and selected the compiler from the pulldown box code completion is working again.

How to link latest stable version of libCURL using vc++2010

On 2 separate machines in completely different environments (work, home) I've been unable to compile libCURL out of the box. Running nmake -f Makefile.vc mode=dll VC=10, I get an unresolved external symbol errors for _IdnToAscii and _IdnToUnicode. I believe the definitions are in Normaliz.lib, which is referenced in LFLAGS, but it either isn't finding it or the version I have doesn't have those functions. But I don't see any option to download this file...anyone have a good solution short of commenting out the 2 lines that use these functions?
It looks like you don't have the IDN API from Windows.
According to the Windows documentation:
http://msdn.microsoft.com/en-us/library/windows/desktop/dd318151%28v=vs.85%29.aspx
And to the libcurl building instructions:
https://github.com/bagder/curl/blob/master/winbuild/BUILD.WINDOWS.txt
IDN API is available from Vista and later and can be installed from:
http://www.microsoft.com/downloads/details.aspx?FamilyID=AD6158D7-DDBA-416A-9109-07607425A815
You can either build it on Vista or install the package from Microsoft or forgo IDN.
To build without IDN just pass ENABLE_IDN=no to the nmake.
NB: It's important to delete the assorted build directories prior ro rerunning nmake with different parameters as some library references may be already in the generated object code.

Resources