Opened 4 years ago

Closed 3 years ago

#60129 closed defect (fixed)

poco, where are the cmake files

Reported by: gaming-hacker (G Alexander) Owned by: arjanvandervelde (Arjan van der Velde)
Priority: Normal Milestone:
Component: ports Version: 2.6.2
Keywords: Cc: toffyrn, ryandesign (Ryan Carsten Schmidt)
Port: poco

Description (last modified by gaming-hacker (G Alexander))

Hello,

I built this library from poco repo with version 1.10.1 and installed to a private location.

Normally poco installs cmake files under $prefix/lib/cmake/Poco like PocoConfig.cmake, etc.

I installed the macports version 1.8 and looked for the cmake files. These files are no where to be found. I searched the entire /opt and /usr/local and subdirectories.

Thanks

Change History (9)

comment:1 Changed 4 years ago by gaming-hacker (G Alexander)

Description: modified (diff)

added

comment:2 Changed 4 years ago by jmroot (Joshua Root)

Keywords: arjanvandervelde removed
Owner: set to arjanvandervelde
Status: newassigned

comment:3 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Presumably the cmake files would be installed if poco used cmake to build. It doesn't; it uses autotools.

We could switch the port to use cmake, but switching build systems is not something that should be done lightly. One would need to verify the set of files installed before and after the change and confirm that one is ok with any differences. As one example, one would want to ascertain whether the library major or minor versions changed, since that would have implications for the ports that depend on this one.

comment:4 Changed 3 years ago by toffyrn

Cc: toffyrn added

comment:5 Changed 3 years ago by gaming-hacker (G Alexander)

poco has been building with cmake for a while

https://github.com/pocoproject/poco/

Building with CMake (Linux, macOS, Windows)

CMake (version 3.5 or newer) is the recommended build system for building the POCO C++ Libraries.

$ git clone -b master https://github.com/pocoproject/poco.git
$ cd poco
$ mkdir cmake-build
$ cd cmake-build
$ cmake ..
$ cmake --build . --config Release

Last edited 3 years ago by gaming-hacker (G Alexander) (previous) (diff)

comment:6 in reply to:  5 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to gaming-hacker:

poco has been building with cmake for a while

poco in MacPorts does not use cmake. We could change it to use cmake, but what I said in comment:3 applies.

comment:7 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Turns out I need this myself now so I'll look into it.

comment:8 in reply to:  3 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: ryandesign added

Replying to ryandesign:

One would need to verify the set of files installed before and after the change and confirm that one is ok with any differences.

Building with cmake, we only get either dynamic or static libraries, not both as we got with autotools. That's ok; I think we can live with just dynamic.

Looks like the autotools system also built and installed both regular and debug (suffixed with "d") versions of the programs and libraries and with cmake we only get the non-debug versions, which seems more normal and is ok with me provided the Pothos* ports (which are the only ones currently depending on poco) don't need those debug libraries, but my guess is they probably don't.

The library names and major versions and install_names stay the same, which is good and should mean that we won't need to revbump the dependents. The library minor versions have increased from 0 to 71, which shouldn't be a problem (but might require a revbump if we wanted to switch back from cmake to autotools).

The way that tests are run under cmake is simpler than the hoops we have to jump through for the autotools build in this port, provided that the tests work under cmake, which they don't here, but I have a patch for that.

So all in all I am ok with the differences and plan to commit this switch to cmake.

comment:9 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: assignedclosed

In cce69045edb12649e6e3f1996f7ad11d3a12349c/macports-ports (master):

poco: Build with cmake

Now installs cmake files for other projects to use to find poco.

Closes: #60129

Now has a universal variant.

Closes: #62699

Note: See TracTickets for help on using tickets.