Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Postgres CMakeList.txt #4540

Open
datajango opened this issue Apr 25, 2024 · 1 comment
Open

Postgres CMakeList.txt #4540

datajango opened this issue Apr 25, 2024 · 1 comment

Comments

@datajango
Copy link

Describe the bug
On Ubuntu 22.04, the poco/cmake/FindPostgreSQL.cmake and /home/tony/dev/tony/poco/Data/PostgreSQL/CMakeLists.txt files contains a bug. I used... libpq-dev

apt show libpq-dev
Package: libpq-dev
Version: 14.11-0ubuntu0.22.04.1
Priority: optional
Section: libdevel
Source: postgresql-14
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Debian PostgreSQL Maintainers <team+postgresql@tracker.debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 586 kB
Depends: libpq5 (= 14.11-0ubuntu0.22.04.1), libssl-dev
Suggests: postgresql-doc-14
Homepage: http://www.postgresql.org/
Download-Size: 147 kB
APT-Manual-Installed: yes
APT-Sources: http://us.archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages
Description: header files for libpq5 (PostgreSQL library)
 Header files and static library for compiling C programs to link
 with the libpq library in order to communicate with a PostgreSQL
 database backend.
 .
 PostgreSQL is an object-relational SQL database management system.

N: There is 1 additional record. Please use the '-a' switch to see it

To Reproduce
cd cmake-build
cmake ..

 cmake ..
-- Checking for C++17 compiler
-- Checking for C++17 compiler - available
-- Could NOT find APR (missing: APR_INCLUDE_DIR APR_LIBRARY) 
-- Could NOT find APRUTIL (missing: APRUTIL_INCLUDE_DIR APRUTIL_LIBRARY) 
-- Could NOT find Apache2 (missing: APACHE2_INCLUDE_DIR) 
-- Could NOT find ODBC (missing: ODBC_LIBRARY ODBC_INCLUDE_DIR) 
-- Building without tests & samples
-- Using internal sqlite, zlib, pcre2, expat, ...
-- SQLite Support Enabled
-- MySQL Support Disabled
-- PostgreSQL Support Enabled
-- ODBC Support Disabled
-- CMake 3.22.1 successfully configured Poco using Unix Makefiles generator
-- Poco package version: 1.13.3
-- Building dynamic libraries
-- [cmake] Installation target path: /usr/local
-- [cmake] Build for OS type:      Linux
-- [cmake] Build for OS version:   6.5.0-27-generic
-- [cmake] Build for CPU type:     x86_64
-- [cmake] Build type:             RelWithDebInfo
-- [cmake] Build with cxx flags:   -O2 -g -DNDEBUG 
-- [cmake] Build with c flags:     -O2 -g -DNDEBUG 
-- [cmake] C++ symbol visibility:  
-- Building: Encodings
-- Building: XML
-- Building: JSON
-- Building: Util
-- Building: Net
-- Building: MongoDB
-- Building: Redis
-- Building: Prometheus
-- Building: JWT
-- Building: NetSSL_OpenSSL
-- Building: Crypto
-- Building: Data
-- Building: Data/SQLite
-- Building: Data/PostgreSQL
-- Building: ActiveRecord
-- Building: ActiveRecordCompiler
-- Building: Zip
-- Building: PageCompiler
-- Building: File2Page
-- Configuring done
CMake Error at Data/PostgreSQL/CMakeLists.txt:15 (add_library):
  Target "DataPostgreSQL" links to target "PostgreSQL::client" but the target
  was not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?

Expected behavior

cmake ..
-- Checking for C++17 compiler
-- Checking for C++17 compiler - available
-- Could NOT find APR (missing: APR_INCLUDE_DIR APR_LIBRARY) 
-- Could NOT find APRUTIL (missing: APRUTIL_INCLUDE_DIR APRUTIL_LIBRARY) 
-- Could NOT find Apache2 (missing: APACHE2_INCLUDE_DIR) 
-- Could NOT find ODBC (missing: ODBC_LIBRARY ODBC_INCLUDE_DIR) 
-- Building without tests & samples
-- Using internal sqlite, zlib, pcre2, expat, ...
-- SQLite Support Enabled
-- MySQL Support Disabled
-- PostgreSQL Support Enabled
-- ODBC Support Disabled
-- CMake 3.22.1 successfully configured Poco using Unix Makefiles generator
-- Poco package version: 1.13.3
-- Building dynamic libraries
-- [cmake] Installation target path: /usr/local
-- [cmake] Build for OS type:      Linux
-- [cmake] Build for OS version:   6.5.0-27-generic
-- [cmake] Build for CPU type:     x86_64
-- [cmake] Build type:             RelWithDebInfo
-- [cmake] Build with cxx flags:   -O2 -g -DNDEBUG 
-- [cmake] Build with c flags:     -O2 -g -DNDEBUG 
-- [cmake] C++ symbol visibility:  
-- Building: Encodings
-- Building: XML
-- Building: JSON
-- Building: Util
-- Building: Net
-- Building: MongoDB
-- Building: Redis
-- Building: Prometheus
-- Building: JWT
-- Building: NetSSL_OpenSSL
-- Building: Crypto
-- Building: Data
-- Building: Data/SQLite
-- Building: Data/PostgreSQL
-- Building: ActiveRecord
-- Building: ActiveRecordCompiler
-- Building: Zip
-- Building: PageCompiler
-- Building: File2Page
-- Configuring done
-- Generating done
-- Build files have been written to: /home/tony/dev/tony/poco/cmake-build

Please add relevant environment information:

  • OS Type and Version :
    uname -a
    Linux sonofkong 6.5.0-28-generic Regarding Poco build system #29~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Apr 4 14:39:20 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
  • POCO Version
    git checkout poco-1.13.3-release

Additional context
Fixes:

poco/cmake/FindPostgreSQL.cmake

if(PostgreSQL_FOUND AND NOT TARGET PostgreSQL::PostgreSQL)
	add_library(PostgreSQL::PostgreSQL UNKNOWN IMPORTED)
	set_target_properties(PostgreSQL::PostgreSQL PROPERTIES
		IMPORTED_LOCATION "${PostgreSQL_LIBRARY}"
		INTERFACE_INCLUDE_DIRECTORIES "${PostgreSQL_INCLUDE_DIR}"
	)
endif()

poco/Data/PostgreSQL/CMakeLists.txt

target_link_libraries(DataPostgreSQL PUBLIC Poco::Data PostgreSQL::PostgreSQL)
target_include_directories(DataPostgreSQL
	PUBLIC
		$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
		$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
)
@datajango datajango added the bug label Apr 25, 2024
@andrewauclair
Copy link
Contributor

You can submit a pull request with the change. That'll be the fastest way to get the issue fixed.

@aleks-f aleks-f added this to the Release 1.13.4 milestone May 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: No status
Development

No branches or pull requests

3 participants