Loading backends/CMakeLists.txt +21 −23 Original line number Diff line number Diff line Loading @@ -2,23 +2,26 @@ include_directories( ${CMAKE_SOURCE_DIR}/src ) # --- YAML BACKEND (Corrected) --- find_package(YAML REQUIRED) if(${YAML_FOUND}) # The conditional check needs a standard CMake variable check, not a dereference. if(YAML_FOUND) set( yamlconfsrc "yaml/yamlconf.cpp") add_library(yamlconf SHARED ${yamlconfsrc}) add_dependencies(yamlconf confplus) # REMOVED: add_dependencies(yamlconf confplus) -> Linking handles this. set_target_properties(yamlconf PROPERTIES PREFIX "") set_target_properties(yamlconf PROPERTIES OUTPUT_NAME "yaml.cfg") set_target_properties(yamlconf PROPERTIES PREFIX "" OUTPUT_NAME "yaml.cfg") target_include_directories(yamlconf PRIVATE ${YAML_INCLUDE_DIR}) # REMOVED: target_include_directories(yamlconf PRIVATE ${YAML_INCLUDE_DIR}) # The modern target 'YAML::YAML' handles the includes automatically. if(${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Windows") target_link_libraries(yamlconf PUBLIC confplus PRIVATE YAML::YAML kernel32.lib ) # Ensure 'confplus' is linked as PRIVATE unless its interface is exposed target_link_libraries(yamlconf PRIVATE confplus YAML::YAML kernel32.lib) else() target_link_libraries(yamlconf PUBLIC confplus PRIVATE YAML::YAML dl) target_link_libraries(yamlconf PRIVATE confplus YAML::YAML dl) endif() install(TARGETS yamlconf Loading @@ -27,28 +30,23 @@ if(${YAML_FOUND}) ) endif() # --- INIPARSER BACKEND (Corrected) --- find_package(INIPARSER) if(${INIPARSER_FOUND}) set( inisrc ini/ini.cpp ) if(INIPARSER_FOUND) set( inisrc ini/ini.cpp) add_library(iniconf SHARED ${inisrc}) set_target_properties(iniconf PROPERTIES PREFIX "") set_target_properties(iniconf PROPERTIES OUTPUT_NAME "ini.cfg") set_target_properties(iniconf PROPERTIES PREFIX "" OUTPUT_NAME "ini.cfg") target_include_directories(iniconf PRIVATE ${INIPARSER_INCLUDE_DIRS} ) # Using modern target (INIPARSER::INIPARSER) for linking automatically pulls in includes. # The classic variable ${INIPARSER_INCLUDE_DIRS} is deprecated/obsolete when using modern targets. # We remove target_include_directories and rely on INIPARSER::INIPARSER. if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows") target_link_libraries(iniconf PUBLIC confplus PRIVATE INIPARSER::INIPARSER kernel32.lib) target_link_libraries(iniconf PRIVATE confplus INIPARSER::INIPARSER kernel32.lib) else() target_link_libraries(iniconf PUBLIC confplus PRIVATE INIPARSER::INIPARSER dl) target_link_libraries(iniconf PRIVATE confplus INIPARSER::INIPARSER dl) endif() install(TARGETS iniconf Loading Loading
backends/CMakeLists.txt +21 −23 Original line number Diff line number Diff line Loading @@ -2,23 +2,26 @@ include_directories( ${CMAKE_SOURCE_DIR}/src ) # --- YAML BACKEND (Corrected) --- find_package(YAML REQUIRED) if(${YAML_FOUND}) # The conditional check needs a standard CMake variable check, not a dereference. if(YAML_FOUND) set( yamlconfsrc "yaml/yamlconf.cpp") add_library(yamlconf SHARED ${yamlconfsrc}) add_dependencies(yamlconf confplus) # REMOVED: add_dependencies(yamlconf confplus) -> Linking handles this. set_target_properties(yamlconf PROPERTIES PREFIX "") set_target_properties(yamlconf PROPERTIES OUTPUT_NAME "yaml.cfg") set_target_properties(yamlconf PROPERTIES PREFIX "" OUTPUT_NAME "yaml.cfg") target_include_directories(yamlconf PRIVATE ${YAML_INCLUDE_DIR}) # REMOVED: target_include_directories(yamlconf PRIVATE ${YAML_INCLUDE_DIR}) # The modern target 'YAML::YAML' handles the includes automatically. if(${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Windows") target_link_libraries(yamlconf PUBLIC confplus PRIVATE YAML::YAML kernel32.lib ) # Ensure 'confplus' is linked as PRIVATE unless its interface is exposed target_link_libraries(yamlconf PRIVATE confplus YAML::YAML kernel32.lib) else() target_link_libraries(yamlconf PUBLIC confplus PRIVATE YAML::YAML dl) target_link_libraries(yamlconf PRIVATE confplus YAML::YAML dl) endif() install(TARGETS yamlconf Loading @@ -27,28 +30,23 @@ if(${YAML_FOUND}) ) endif() # --- INIPARSER BACKEND (Corrected) --- find_package(INIPARSER) if(${INIPARSER_FOUND}) set( inisrc ini/ini.cpp ) if(INIPARSER_FOUND) set( inisrc ini/ini.cpp) add_library(iniconf SHARED ${inisrc}) set_target_properties(iniconf PROPERTIES PREFIX "") set_target_properties(iniconf PROPERTIES OUTPUT_NAME "ini.cfg") set_target_properties(iniconf PROPERTIES PREFIX "" OUTPUT_NAME "ini.cfg") target_include_directories(iniconf PRIVATE ${INIPARSER_INCLUDE_DIRS} ) # Using modern target (INIPARSER::INIPARSER) for linking automatically pulls in includes. # The classic variable ${INIPARSER_INCLUDE_DIRS} is deprecated/obsolete when using modern targets. # We remove target_include_directories and rely on INIPARSER::INIPARSER. if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows") target_link_libraries(iniconf PUBLIC confplus PRIVATE INIPARSER::INIPARSER kernel32.lib) target_link_libraries(iniconf PRIVATE confplus INIPARSER::INIPARSER kernel32.lib) else() target_link_libraries(iniconf PUBLIC confplus PRIVATE INIPARSER::INIPARSER dl) target_link_libraries(iniconf PRIVATE confplus INIPARSER::INIPARSER dl) endif() install(TARGETS iniconf Loading