Portál AbcLinuxu, 29. října 2025 15:36
project(kminidlna)
cmake_minimum_required(VERSION 2.6)
find_package(KDE4 REQUIRED)
find_package(Qt4 REQUIRED)
find_package(OpenSSL REQUIRED)
add_subdirectory(po)
add_subdirectory(src)
# set(CMAKE_VERBOSE_MAKEFILE ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE ON)
add_definitions(${QT_DEFINITIONS} ${KDE4_DEFINITIONS} )
set(VERSION "0.19")
poté ve složce src, v které je main:
include_directories(${KDE4_INCLUDES} ${QT_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR} ${OPENSSL_INCLUDE_DIR})
set(VERSION "0.2 beta")
configure_file(kminidlna_version.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/kminidlna_version.h )
# enable_testing() #enable testing
# add_subdirectory(../po)
add_subdirectory(server)
add_subdirectory(view)
add_subdirectory(core)
add_subdirectory(tests)
set(kminidlna_SRCS main.cpp)
set(kminidlna_RCCS resource.qrc)
kde4_add_app_icon(kminidlna_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/resource/kminidlna.png")
qt4_add_resources(kminidlna_RCCS_SRCS ${kminidlna_RCCS})
kde4_add_executable(kminidlna ${kminidlna_SRCS} ${kminidlna_RCCS_SRCS})
target_link_libraries(kminidlna ${OPENSSL_LIBRARIES} server core view ${KDE4_KDEUI_LIBS} ${KDE4_KIO_LIBS} ${QT_QTCORE_LIBRARY} ${QT_QTNETWORK_LIBRARY} )
install(TARGETS kminidlna DESTINATION ${BIN_INSTALL_DIR})
install(PROGRAMS kminidlna.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/resource/kminidlna.png DESTINATION ${ICON_INSTALL_DIR})
a konečně v server mám:
include_directories(${KDE4_INCLUDES} ${QT_INCLUDES} ${OPENSSL_INCLUDE_DIR})
set( SERVER_SRCS certificategenerator.cpp interface/restminidlnaput.cpp restconnection.cpp interface/restmediafolder.cpp interface/basicrestresource.cpp interface/restminidlna.cpp interface/restinterfaces.cpp interface/restresource.cpp
restserver.cpp
serverrequest.cpp
)
kde4_add_library(server STATIC ${SERVER_SRCS} )
target_link_libraries( server ${OPENSSL_LIBRARIES} ${QT_QTXML_LIBRARY} ${QT_QTXMLPATTERNS_LIBRARY})
add_subdirectory(interface)
Už jsem z toho fakt nešťastný a nevím co s tím. V mém zkušebním projektu vše funguje.
Řešení dotazu:
FIND_LIBRARY(OPENSSL_SSL_LIBRARIES NAMES ssl ssleay32 ssleay32MD)
FIND_LIBRARY(OPENSSL_CRYPTO_LIBRARIES NAMES crypto)
...
SET(OPENSSL_LIBRARIES ${OPENSSL_SSL_LIBRARIES} ${OPENSSL_CRYPTO_LIBRARIES})
Tudiz bych cekal, ze v OPENSSL_LIBRARIES bude i "-lcrypto". Nejde cmake spustit v debug rezimu a zjistit kde je problem (napr pomoci --debug-output, nebo --trace)?
target_link_libraries( server ${OPENSSL_LIBRARIES} ${QT_QTXML_LIBRARY} ${QT_QTXMLPATTERNS_LIBRARY}) pridat:
MESSAGE(STATUS "OPENSSL_SSL_LIBRARIES :" "${OPENSSL_SSL_LIBRARIES}")
MESSAGE(STATUS "OPENSSL_CRYPTO_LIBRARIES :" "${OPENSSL_CRYPTO_LIBRARIES}")
MESSAGE(STATUS "OPENSSL_LIBRARIES :" "${OPENSSL_LIBRARIES}")
Me to vypise:
-- OPENSSL_SSL_LIBRARIES :/usr/lib64/libssl.so -- OPENSSL_CRYPTO_LIBRARIES :/usr/lib64/libcrypto.so -- OPENSSL_LIBRARIES :/usr/lib64/libssl.so;/usr/lib64/libcrypto.so
find_package(OpenSSL REQUIRED) find_package(KDE4 REQUIRED) find_package(Qt4 REQUIRED)kde musí být OpenSSL před Qt4. Qt si asi ty proměnné nějak přepíše. Moc díky za pomoc.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.