diff --git a/extern/CMakeProject-json.cmake b/extern/CMakeProject-json.cmake index ec133ea2be..953a8d82d4 100644 --- a/extern/CMakeProject-json.cmake +++ b/extern/CMakeProject-json.cmake @@ -1,8 +1,6 @@ if(WITH_SYSTEM_JSONCPP) - find_library(JSONCPP_LIBRARY jsoncpp) - if(JSONCPP_LIBRARY MATCHES "JSONCPP_LIBRARY-NOTFOUND") - message(FATAL_ERROR "Need jsoncpp.") - endif() + find_package(PkgConfig REQUIRED) + pkg_check_modules(JSONCPP REQUIRED jsoncpp) else() list(APPEND JSON_SRC "jsoncpp/src/lib_json/json_reader.cpp" diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c29df4338d..72cb54a493 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -449,7 +449,7 @@ else() endif() if(WITH_SYSTEM_JSONCPP) - list(APPEND SMDATA_LINK_LIB ${JSONCPP_LIBRARY}) + list(APPEND SMDATA_LINK_LIB ${JSONCPP_LIBRARIES}) else() list(APPEND SMDATA_LINK_LIB "jsoncpp") endif() @@ -612,10 +612,23 @@ list(APPEND SM_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR} "${SM_SRC_DIR}/generated") list(APPEND SM_INCLUDE_DIRS "${JPEG_INCLUDE_DIR}") if(NOT APPLE) - list(APPEND SM_INCLUDE_DIRS - "${SM_EXTERN_DIR}/glew-1.5.8/include" - "${SM_EXTERN_DIR}/jsoncpp/include" - "${SM_EXTERN_DIR}/zlib") + if(NOT WITH_SYSTEM_GLEW) + list(APPEND SM_INCLUDE_DIRS + "${SM_EXTERN_DIR}/glew-1.5.8/include") + endif() + + if(WITH_SYSTEM_JSONCPP) + list(APPEND SM_INCLUDE_DIRS ${JSONCPP_INCLUDE_DIRS}) + else() + list(APPEND SM_INCLUDE_DIRS + "${SM_EXTERN_DIR}/jsoncpp/include") + endif() + + if(NOT WITH_SYSTEM_ZLIB) + list(APPEND SM_INCLUDE_DIRS + "${SM_EXTERN_DIR}/zlib") + endif() + if(MSVC) if(WITH_OGG) list(APPEND SM_INCLUDE_DIRS @@ -625,7 +638,7 @@ if(NOT APPLE) endif() list(APPEND SM_INCLUDE_DIRS "${SM_EXTERN_DIR}/ffmpeg/include") else() - if(WITH_OGG) + if(WITH_OGG AND NOT WITH_SYSTEM_OGG) list(APPEND SM_INCLUDE_DIRS "${SM_EXTERN_DIR}/vorbis") endif() if(HAS_FFMPEG) @@ -664,7 +677,7 @@ endif() if(WIN32) # FIXME: This makes no sense... #list(APPEND SM_INCLUDE_DIRS ${DIRECTX_INCLUDE_DIR}) -else() +elseif(NOT WITH_SYSTEM_PNG) list(APPEND SM_INCLUDE_DIRS "${SM_EXTERN_DIR}/libpng/include") endif() diff --git a/src/CMakeProject-texture.cmake b/src/CMakeProject-texture.cmake index 70ccd5ab16..c46cbe14f0 100644 --- a/src/CMakeProject-texture.cmake +++ b/src/CMakeProject-texture.cmake @@ -50,10 +50,18 @@ target_link_libraries("TextureFontGenerator" ${TEXTURE_LINK_LIB}) list(APPEND TEXTURE_INCLUDE_DIRS "${TEXTURE_DIR}" "${TEXTURE_DIR}/res" - "${SM_EXTERN_DIR}/zlib" - "${SM_EXTERN_DIR}/libpng/include" "${SM_SRC_DIR}/generated") +if(NOT WITH_SYSTEM_ZLIB) + list(APPEND TEXTURE_INCLUDE_DIRS + "${SM_EXTERN_DIR}/zlib") +endif() + +if(NOT WITH_SYSTEM_PNG) + list(APPEND TEXTURE_INCLUDE_DIRS + "${SM_EXTERN_DIR}/libpng/include") +endif() + target_include_directories("TextureFontGenerator" PUBLIC ${TEXTURE_INCLUDE_DIRS})