PostgreSQL не находится с помощью CMake (CLion, Windows)

Возникла проблема при попытке подключения PostgreSQL к проекту на C++ (взаимодействие планируется осуществлять с помощью библиотеки pqxx): СУБД не находится никоим образом, несмотря на все попытки и поиски решения проблемы, выдаётся ошибка "(message): Could NOT find PostgreSQL (missing: PostgreSQL_LIBRARY)". В результате поисков и попыток, на данный момент CMakeLists.txt выглядит так:

cmake_minimum_required(VERSION 3.24)
project(Database_1)
set(CMAKE_CXX_STANDARD 17)

LINK_DIRECTORIES("C:/Program Files/PostgreSQL/16/lib")
set(PostgreSQL_ADDITIONAL_VERSIONS "16.4")
set(PostgreSQL_INCLUDE_DIR "C:/Program Files/PostgreSQL/16/include")
set(PostgreSQL_LIBRARY_DIR "C:/Program Files/PostgreSQL/16/lib")
set(PostgreSQL_ROOT "C:/Program Files/PostgreSQL/16")

message(STATUS "PostgreSQL_INCLUDE_DIRS: ${PostgreSQL_INCLUDE_DIRS}")
message(STATUS "PostgreSQL_LIBRARIES: ${PostgreSQL_LIBRARIES}")
find_package(PostgreSQL REQUIRED)

add_executable(Database_1 main.cpp)

target_link_libraries(Database_1 PRIVATE PostgreSQL::PostgreSQL)
target_include_directories(Database_1 PRIVATE ${PostgreSQL_INCLUDE_DIRS})

find_package(libpqxx REQUIRED)
target_link_libraries(Database_1 PRIVATE pqxx)

Message выводит следующее ничего:

-- PostgreSQL_INCLUDE_DIRS:

-- PostgreSQL_LIBRARIES:

В чём может быть проблема?

UPD1: Лог CMake

-- PostgreSQL_INCLUDE_DIRS: 
-- PostgreSQL_LIBRARY_DIRS: 
CMake Error at /cygdrive/c/Users/Павел/AppData/Local/JetBrains/CLion2022.3/cygwin_cmake/share/cmake-3.24.2/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find PostgreSQL (missing: PostgreSQL_LIBRARY) (found version
  "16.4")
Call Stack (most recent call first):
  /cygdrive/c/Users/Павел/AppData/Local/JetBrains/CLion2022.3/cygwin_cmake/share/cmake-3.24.2/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
  /cygdrive/c/Users/Павел/AppData/Local/JetBrains/CLion2022.3/cygwin_cmake/share/cmake-3.24.2/Modules/FindPostgreSQL.cmake:272 (find_package_handle_standard_args)
  CMakeLists.txt:15 (find_package)

UPD2: Проблема успешно решена, как обычно корень всех бед крайне смешон. Через отладку CMake удалось заметить, что PostgreSQL_LIBRARY_ADDITIONAL_SEARCH_SUFFIXES собирает имена файлов, характерные для UNIX-систем. Винда же предсказуемо от такого ничего не понимала и нужные файлы не находила. А виной всему использование Cygwin вместо MinGW, на MinGW постгрес находится без проблем... Большое спасибо @Ingvar за помощь!


Ответы (1 шт):

Автор решения: Ingvar

С учетом заданных путей в Path до папок bin / include / lib PostgreSQL (C:\Program Files\PostgreSQL\15\include и т.п.)

Попробуй в этом порядке:

#-- Ищем PostgreSQL
find_package(PostgreSQL REQUIRED)
message("[MAIN] Found PostgreSQL VER: " ${PostgreSQL_VERSION_STRING})
message("[MAIN] Include files PostgreSQL: " ${PostgreSQL_INCLUDE_DIRS})
message("[MAIN] Lib files PostgreSQL: " ${PostgreSQL_LIBRARY_DIRS})

//----------------------------------------------------

соответственно (порядок инструкций важен!):

    include_directories(AFTER ${PostgreSQL_INCLUDE_DIRS})
link_directories(AFTER ${PostgreSQL_LIBRARY_DIRS})

add_library(plgconnector SHARED
  plgconnector_global.h
  tconnector.cpp
  tnotifyer.cpp
  tquery.cpp
  treader.cpp
  tconnector.h
  pgerror.ui
  pgerror.h
  pgerror.cpp
  sqlhighlighter.h
  sqlhighlighter.cpp
  sqlloghlighter.h
  sqlloghlighter.cpp
)

if (WIN32)
    target_link_libraries(plgconnector PRIVATE Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Widgets
        libpq.lib
    )
endif(WIN32)

if (UNIX AND NOT APPLE)
    target_link_libraries(plgconnector PRIVATE Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Widgets pq)
endif()
→ Ссылка