grantila / q

A platform-independent promise library for C++, implementing asynchronous continuations.
http://libq.io
Apache License 2.0
193 stars 24 forks source link

make test build optional, use more common out dirs #3

Closed a4z closed 7 years ago

a4z commented 7 years ago

building tests can now be disabled by passing q_BUILD_TESTS=OFF all generated libraries go to builddir/lib, binaries to builddir/bin

a4z commented 7 years ago

added pkg config file generated via cmake and addded make install build install now like this

> mkdir build && cd build
> cmake3 -DCMAKE_BUILD_TYPE=Release -Dq_BUILD_TESTS=OFF ../
> make install DESTDIR=$(pwd)/zinstall
# make a package, rpm, deb, whatever, out of the content of zinstall 

at least the linux version, untested via mac. however, these things are now in place, and it works better to fix issues than having no install or pkgconfig file at all

CMAKE_INSTALL_PREFIX is supported, as LIB_SUFFIX is, so in future Slackware versions the cmake call will work like

cmake -DCMAKE_BUILD_TYPE=Release \
 -DCMAKE_INSTALL_PREFIX=/usr \
 -DLIB_SUFFIX=64 \
 -Dq_BUILD_TESTS=OFF \
 ../
grantila commented 7 years ago

Excellent, however when I build on Ubuntu, it fails on dladdr (it seems not to link with -ldl although this is specified in the compilersetup.cmake)... I read that this could be caused by the order of using CMAKE_EXE_LINKER_FLAGS and find_package. I'll take a look at that.

a4z commented 7 years ago

I can have a look at this lover the weekend, have to enable ctest. will do this on my ubuntu box and than I can make that ot once

grantila commented 7 years ago

Great. Pull the latest, I reverted the linking variable GENERIC_LIB_DEPS. If you can make it work without it, if CMAKE_EXE_LINKER_FLAGS is a prettier way to do it, I'm fine with that! It builds fine on both Mac and Windows btw.

a4z commented 7 years ago

the fix you did is right, ldl has to come after the object file in this setup. I just think about creating a Q_LIBS variable, and fill this with q since this is always required, and if on gcc, add dl. pthread can stay where it is, but is does not matter if where it is, Might revisit this later this week