cygport: CYGCMAKE_SOURCE seems to have no effect.

Brian Inglis
Fri Sep 17 15:41:08 GMT 2021

On 2021-09-17 03:37, Carlo B. via Cygwin wrote:
> in addition to my previous message, I did some experiments with the
> code of cygport and I added these lines to
> /usr/share/cygport/cygclass/cmake.cygclass:
> echo "B=${B}"
> echo "S=${S}"
> echo "PWD=${PWD}"
> and the result is:

If you look at the Cygport Install Functions docs for docinto, ...into, 
defining target directories, you would see that an "absolute" path 
disables cygport from prefixing a subdirectory name with the package 
name, etc. so CMakeLists.txt is (linked) under ${S,B}/cmake, and cygport 
will automatically find that, so it should not be required or specified:

"This is only necessary when the top-level CMakeLists.txt is not in $S 
and cygcmake is not being run in the same subdirectory of $B which under 
$S contains the top-level CMakeLists.txt. (IOW if the top-level 
CMakeLists.txt is in $S/unix and cygcmake is run from $B/unix, setting 
CYGCMAKE_SOURCE would not be necessary.)"

as cygport would find CMakeLists.txt in $S/cmake/ so it would copy or 
link those under $B, and run cygcmake under the equivalent subdirectory.

> B=/home/carlo/liblo.src/liblo-0.31-1.x86_64/build
> S=/home/carlo/liblo.src/liblo-0.31-1.x86_64/src/liblo-0.31
> PWD=/home/carlo/liblo.src/liblo-0.31-1.x86_64/build
> *** ERROR: cygcmake: cmake directory not found
> But ${CYGCMAKE_SOURCE} was set as:
> CYGCMAKE_SOURCE="${S}/cmake"
> So, it seems to me that there is at least a bug into the
> documentation, because ${CYGCMAKE_SOURCE} does not seem to allow the
> use of {S}.

CMakeLists.txt is found automatically by cygport if it is under $S, as 
that is the documented assumption (see above).

> I was able to make it working by writing:
> but I don't know if this is the right way to do it and could be accepted or not.

Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada

This email may be disturbing to some readers as it contains
too much technical detail. Reader discretion is advised.
[Data in binary units and prefixes, physical quantities in SI.]

>> =======> And this is the content of my liblo.cygport file:
>> inherit cmake
>> NAME="liblo"
>> VERSION=0.31
>> CATEGORY="Audio"
>> SUMMARY="Open Sound Control protocol for POSIX systems"
>> DESCRIPTION="Open Sound Control (OSC) is a protocol for communication
>>   among computers, sound synthesizers, and other multimedia devices that
>>   is optimized for modern networking technology."
>> SRC_URI="${VERSION}.tar.gz"
>> PKG_NAMES="liblo1 liblo-devel"
>>      usr/share/doc/liblo/AUTHORS
>>      usr/share/doc/liblo/COPYING
>>      usr/share/doc/liblo/ChangeLog
>>      usr/share/doc/liblo/NEWS
>>      usr/share/doc/liblo/README
>>      usr/share/doc/liblo/TODO
>> "
>> liblo1_CATEGORY="Libs"
>> liblo1_SUMMARY="${SUMMARY}"
>> liblo1_CONTENTS="
>>      usr/bin/cyglo-7.dll
>>      usr/bin/oscdump.exe
>>      usr/bin/oscsend.exe
>> "
>> liblo_devel_CATEGORY="Libs"
>> liblo_devel_SUMMARY="${SUMMARY}"
>> liblo_devel_CONTENTS="
>>      usr/include/lo/*
>>      usr/lib/liblo.dll.a
>>      usr/lib/pkgconfig/liblo.pc
>>      usr/lib/cmake/liblo/libloConfig.cmake
>> "
>> CYGCMAKE_SOURCE="${S}/cmake"

More information about the Cygwin mailing list