From c19fb112bb11029f4054d9d2913a75cf5dfca54a Mon Sep 17 00:00:00 2001 From: Ming Rui Zhang <mingrui.zhang@savoirfairelinux.com> Date: Fri, 9 Apr 2021 15:00:12 -0400 Subject: [PATCH] build: use cmake entirely for windows GitLab: #352 Change-Id: Ib373811c9d47164954a19633fd0da389eff5aac6 --- CMakeLists.txt | 551 ++++++++++++++++++++------------ cmake/time_stamp_check.cmake | 13 + cmake/time_stamp_create.cmake | 8 + cmake/windows_deploy.cmake | 22 ++ copy-runtime-files.py | 347 -------------------- jami-qt.pro | 189 ----------- jami-qt.sln | 527 ++++++++++++++++++++---------- make-client.py | 100 ++++-- src/qrimageprovider.h | 2 +- src/smartlistmodel.cpp | 2 +- src/tintedbuttonimageprovider.h | 2 +- src/utils.cpp | 23 +- src/utils.h | 2 +- 13 files changed, 822 insertions(+), 966 deletions(-) create mode 100644 cmake/time_stamp_check.cmake create mode 100644 cmake/time_stamp_create.cmake create mode 100644 cmake/windows_deploy.cmake delete mode 100644 copy-runtime-files.py delete mode 100644 jami-qt.pro diff --git a/CMakeLists.txt b/CMakeLists.txt index 1bb35818d..8549d9778 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.7) +cmake_minimum_required(VERSION 3.15) project(jami-qt) @@ -13,22 +13,12 @@ set(CMAKE_AUTOUIC ON) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(SRC_DIR ${PROJECT_SOURCE_DIR}/src) -set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} - ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}) +set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}) +set(CMAKE_INSTALL_RPATH_USE_LINK_PATH true) set(QML_RESOURCES ${PROJECT_SOURCE_DIR}/resources.qrc) set(QML_RESOURCES_QML ${PROJECT_SOURCE_DIR}/qml.qrc) -set(QML_LIBS - Qt5::Quick - Qt5::QuickWidgets - Qt5::Network - Qt5::Svg - Qt5::QuickControls2 - Qt5::WebEngine - Qt5::DBus - Qt5::Core) - # library compatibility (boost, libnotify, etc.) add_definitions(-DQT_NO_KEYWORDS) @@ -69,8 +59,6 @@ set(COMMON_SOURCES ${SRC_DIR}/audiomanagerlistmodel.cpp ${SRC_DIR}/qmlregister.cpp ${SRC_DIR}/utilsadapter.cpp - ${SRC_DIR}/dbuserrorhandler.cpp - ${SRC_DIR}/xrectsel.c ${SRC_DIR}/moderatorlistmodel.cpp ${SRC_DIR}/screensaver.cpp ${SRC_DIR}/systemtray.cpp @@ -122,29 +110,156 @@ set(COMMON_HEADERS ${SRC_DIR}/quickimageproviderbase.h ${SRC_DIR}/qtutils.h ${SRC_DIR}/utilsadapter.h - ${SRC_DIR}/dbuserrorhandler.h - ${SRC_DIR}/xrectsel.h ${SRC_DIR}/moderatorlistmodel.h ${SRC_DIR}/screensaver.h ${SRC_DIR}/systemtray.h ${SRC_DIR}/appsettingsmanager.h ${SRC_DIR}/lrcinstance.h) -find_package(PkgConfig REQUIRED) +set(QML_LIBS + Qt5::Quick + Qt5::QuickWidgets + Qt5::Network + Qt5::Svg + Qt5::Sql + Qt5::Concurrent + Qt5::QuickControls2 + Qt5::WebEngine + Qt5::Core) -pkg_check_modules(LIBNM libnm) -if(LIBNM_FOUND) - add_definitions(-DUSE_LIBNM) -endif() +set(QML_LIBS_LIST + Core + Concurrent + Quick + QuickWidgets + Network + Svg + Sql + QuickControls2 + WebEngine) + +if(MSVC) + # preprocessor defines + add_definitions(-DUNICODE -DQT_NO_DEBUG -DNDEBUG) + + # dependencies + set(LRC ${PROJECT_SOURCE_DIR}/../lrc) + set(DRING ${PROJECT_SOURCE_DIR}/../daemon) + set(QRENCODE ${PROJECT_SOURCE_DIR}/qrencode-win32/qrencode-win32) + + # compiler options + add_compile_options(/wd4068 /wd4099 /wd4189 /wd4267 /wd4577 /wd4467 /wd4715 /wd4828) + add_compile_options(/MP /GS /W3 /Gy /Zc:wchar_t /Zi /Gm- /O2 /Zc:inline /fp:precise /errorReport:prompt) + add_compile_options(/Gd /Oi /MD /std:c++17 /FC /EHsc /nologo /sdl) + + # linker options + add_link_options("/IGNORE:4006,4049,4078,4098" "/FORCE:MULTIPLE" "/INCREMENTAL:NO" "/DEBUG" "/LTCG" "/NODEFAULTLIB:LIBCMT") + + # client deps + set(QRENCODE_LIB ${QRENCODE}/vc8/qrcodelib/x64/Release-Lib/qrcodelib.lib) + + # lrc + set(LRC_SRC_PATH ${LRC}/src) + set(RINGCLIENT_STATIC_LIB ${LRC}/build/release/ringclient_static.lib) + set(QTWRAPPER_LIB ${LRC}/build/src/qtwrapper/Release/qtwrapper.lib) + + # daemon + set(DRING_SRC_PATH ${DRING}/contrib/msvc/include) + set(DRING_LIB ${DRING}/build/x64/ReleaseLib_win32/bin/dring.lib) + set(GNUTLS_LIB ${DRING}/contrib/msvc/lib/x64/libgnutls.lib) + + # ReleaseCompile config + if(ReleaseCompile) + message("ReleaseCompile config enabled") + add_definitions(-DCOMPILE_ONLY) + else() + # Beta config + if(BETA) + message("Beta config enabled") + add_definitions(-DBETA) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}/x64/Beta) + else() + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}/x64/Release) + endif() + endif() + + include_directories(${DRING_SRC_PATH} + ${LRC_SRC_PATH} + ${QRENCODE}) +else() + list(APPEND COMMON_SOURCES + ${SRC_DIR}/xrectsel.c + ${SRC_DIR}/dbuserrorhandler.cpp) + list(APPEND COMMON_HEADERS + ${SRC_DIR}/dbuserrorhandler.h + ${SRC_DIR}/xrectsel.h) + list(APPEND QML_LIBS Qt5::DBus) + list(APPEND QML_LIBS_LIST DBus) + + find_package(PkgConfig REQUIRED) + + pkg_check_modules(LIBNM libnm) + if(LIBNM_FOUND) + add_definitions(-DUSE_LIBNM) + endif() + + pkg_check_modules(LIBNOTIFY libnotify>=0.7.6) + if(LIBNOTIFY_FOUND) + add_definitions(-DUSE_LIBNOTIFY) + add_definitions(${LIBNOTIFY_CFLAGS}) + pkg_check_modules(LIBGDKPIXBUF gdk-pixbuf-2.0>=2.40.0) + add_definitions(${LIBGDKPIXBUF_CFLAGS}) + endif() + + if(NOT DEFINED LRC) + if(EXISTS ${PROJECT_SOURCE_DIR}/../install/lrc) + set(LRC ${PROJECT_SOURCE_DIR}/../install/lrc) + endif() + endif() + + # If LRC is not globally installed, it's path should be specified + # by setting variable LRC. If library is not inside LRC + suffixes + # lib, build or build-local, it's path should be set with LRCLIB. + if(DEFINED LRC) + if(EXISTS ${LRC}/include/libringclient) + set(LRC_SRC_PATH ${LRC}/include/libringclient) + else() + set(LRC_SRC_PATH ${LRC}/src) + endif() + if(NOT DEFINED LRCLIB) + set(LRCLIB ${LRC}) + endif() + find_library(ringclient ringclient + PATHS ${LRCLIB} + PATH_SUFFIXES lib build build-local NO_DEFAULT_PATH) + message("Will expect lrc library in ${LRCLIB} (including \ + subdirs /lib, /build and /build-local)") + set(LRC_LIB_NAME ${ringclient}) + else() + find_package(LibRingClient REQUIRED) + if (LibRingClient_FOUND) + set(LRC_SRC_PATH ${LIB_RING_CLIENT_INCLUDE_DIR}) + set(LRC_LIB_NAME ${LIB_RING_CLIENT_LIBRARY}) + else() + message("lrc not found!") + endif() + endif() + + message("Will expect lrc headers in ${LRC_SRC_PATH}") + + include_directories(${LRC_SRC_PATH} + ${LIBNM_INCLUDE_DIRS} + ${LIBNOTIFY_INCLUDE_DIRS} + ${LIBGDKPIXBUF_INCLUDE_DIRS}) -pkg_check_modules(LIBNOTIFY libnotify>=0.7.6) -if(LIBNOTIFY_FOUND) - add_definitions(-DUSE_LIBNOTIFY) - add_definitions(${LIBNOTIFY_CFLAGS}) - pkg_check_modules(LIBGDKPIXBUF gdk-pixbuf-2.0>=2.40.0) - add_definitions(${LIBGDKPIXBUF_CFLAGS}) + set(JAMI_DATA_PREFIX "${CMAKE_INSTALL_PREFIX}/share") + + find_library(ringclient ringclient ${LRCLIBDIR} NO_DEFAULT_PATH) + find_library(qrencode qrencode) + find_library(X11 X11) endif() +# Qt find package if(QT5_VER AND QT5_PATH) string(REPLACE "." ";" VERSION_LIST ${QT5_VER}) list(GET VERSION_LIST 0 QT5_VER_MAJOR) @@ -153,200 +268,214 @@ if(QT5_VER AND QT5_PATH) if((${QT5_VER_MAJOR} GREATER_EQUAL 5) AND (${QT5_VER_MINOR} GREATER_EQUAL 14)) message(STATUS "Using custom Qt version") - find_package(Qt5 ${QT5_VER} REQUIRED COMPONENTS - Core - Quick - QuickWidgets - Network - Svg - QuickControls2 - WebEngine - DBus - PATHS ${QT5_PATH} NO_DEFAULT_PATH) - find_package(Qt5LinguistTools ${QT5_VER} - PATHS ${QT5_PATH} NO_DEFAULT_PATH) + find_package(Qt5 ${QT5_VER} REQUIRED COMPONENTS ${QML_LIBS_LIST} + PATHS ${QT5_PATH} NO_DEFAULT_PATH) + find_package(Qt5LinguistTools ${QT5_VER} PATHS ${QT5_PATH} NO_DEFAULT_PATH) endif() else() - find_package(Qt5 REQUIRED COMPONENTS - Core - Quick - QuickWidgets - Network - Svg - QuickControls2 - WebEngine - DBus) + find_package(Qt5 REQUIRED COMPONENTS ${QML_LIBS_LIST}) find_package(Qt5LinguistTools) endif() -set(CMAKE_INSTALL_RPATH_USE_LINK_PATH true) - -if(NOT DEFINED LRC) - if(EXISTS ${PROJECT_SOURCE_DIR}/../install/lrc) - set(LRC ${PROJECT_SOURCE_DIR}/../install/lrc) - endif() -endif() - -# If LRC is not globally installed, it's path should be specified -# by setting variable LRC. If library is not inside LRC + suffixes -# lib, build or build-local, it's path should be set with LRCLIB. -if(DEFINED LRC) - if(EXISTS ${LRC}/include/libringclient) - set(LRC_SRC_PATH ${LRC}/include/libringclient) - else() - set(LRC_SRC_PATH ${LRC}/src) - endif() - if(NOT DEFINED LRCLIB) - set(LRCLIB ${LRC}) - endif() - find_library(ringclient ringclient - PATHS ${LRCLIB} - PATH_SUFFIXES lib build build-local NO_DEFAULT_PATH) - message("Will expect lrc library in ${LRCLIB} (including \ -subdirs /lib, /build and /build-local)") - set(LRC_LIB_NAME ${ringclient}) -else() - find_package(LibRingClient REQUIRED) - if (LibRingClient_FOUND) - set(LRC_SRC_PATH ${LIB_RING_CLIENT_INCLUDE_DIR}) - set(LRC_LIB_NAME ${LIB_RING_CLIENT_LIBRARY}) - else() - message("lrc not found!") - endif() -endif() - -message("Will expect lrc headers in ${LRC_SRC_PATH}") +# common include include_directories(${PROJECT_SOURCE_DIR} - ${SRC_DIR} - ${LRC_SRC_PATH} - ${LIBNM_INCLUDE_DIRS} - ${LIBNOTIFY_INCLUDE_DIRS} - ${LIBGDKPIXBUF_INCLUDE_DIRS}) + ${SRC_DIR}) +# common executable sources add_executable(${PROJECT_NAME} - ${SRC_DIR}/main.cpp - ${COMMON_HEADERS} - ${COMMON_SOURCES} - ${QML_RESOURCES} - ${QML_RESOURCES_QML} - ${LRC_SRC_PATH}/webresource.qrc) - -set(JAMI_DATA_PREFIX "${CMAKE_INSTALL_PREFIX}/share") - -find_library(ringclient ringclient ${LRCLIBDIR} NO_DEFAULT_PATH) -find_library(qrencode qrencode) -find_library(X11 X11) - -target_link_libraries(jami-qt - ${QML_LIBS} - ${LRC_LIB_NAME} - ${qrencode} - ${X11} - ${LIBNM_LIBRARIES} - ${LIBNOTIFY_LIBRARIES} - ${LIBGDKPIXBUF_LIBRARIES}) - -if(ENABLE_TESTS) - message("Add Jami tests") - add_subdirectory(tests) -endif() + ${SRC_DIR}/main.cpp + ${COMMON_HEADERS} + ${COMMON_SOURCES} + ${QML_RESOURCES} + ${QML_RESOURCES_QML} + ${LRC_SRC_PATH}/webresource.qrc) + +if(MSVC) + target_link_libraries(${PROJECT_NAME} + ${QML_LIBS} + ${QRENCODE_LIB} + Shell32.lib + Ole32.lib + Advapi32.lib + Shlwapi.lib + User32.lib + Gdi32.lib + Crypt32.lib + Strmiids.lib) + + if(NOT DEFINED ReleaseCompile) + # executable icon + target_sources(${PROJECT_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/ico.rc) + + target_link_libraries(${PROJECT_NAME} + ${RINGCLIENT_STATIC_LIB} + ${QTWRAPPER_LIB} + ${DRING_LIB} + ${GNUTLS_LIB}) + + # translations + if(Qt5LinguistTools_FOUND) + message("Releasing and copying translation files") + file(MAKE_DIRECTORY "${CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE}/share/ring/translations/") + file(MAKE_DIRECTORY "${CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE}/share/libringclient/translations/") + file(GLOB TS_CLIENT_FILES ${PROJECT_SOURCE_DIR}/translations/*.ts) + file(GLOB TS_LRC_FILES ${LRC}/translations/*.ts) + set_source_files_properties(${TS_CLIENT_FILES} PROPERTIES OUTPUT_LOCATION + "${CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE}/share/ring/translations") + set_source_files_properties(${TS_LRC_FILES} PROPERTIES OUTPUT_LOCATION + "${CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE}/share/libringclient/translations") + qt5_add_translation(QM_CLIENT_FILES ${TS_CLIENT_FILES}) + qt5_add_translation(QM_LRC_FILES ${TS_LRC_FILES}) + target_sources(${PROJECT_NAME} PRIVATE ${QM_CLIENT_FILES}) + target_sources(${PROJECT_NAME} PRIVATE ${QM_LRC_FILES}) + endif() + + # POST_BUILD steps + + # check time stamp + set(TIME_STAMP_FILE ".deploy.stamp") + add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD + WORKING_DIRECTORY "$<TARGET_FILE_DIR:${PROJECT_NAME}>" + COMMAND ${CMAKE_COMMAND} -DTIME_STAMP_FILE=${TIME_STAMP_FILE} + -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/time_stamp_check.cmake) + + # copy runtime files and run windeployqt on target and deploy Qt libs + add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD + WORKING_DIRECTORY "$<TARGET_FILE_DIR:${PROJECT_NAME}>" + COMMAND ${CMAKE_COMMAND} -DTIME_STAMP_FILE=${TIME_STAMP_FILE} + -DCOPY_TO_PATH=$<TARGET_FILE_DIR:${PROJECT_NAME}> + -DDRING_PATH=${DRING} + -DPROJECT_ROOT_DIR=${PROJECT_SOURCE_DIR} + -DWIN_DEPLOY_QT_PATH=${CMAKE_PREFIX_PATH}/bin + -DQML_SRC_DIR=${SRC_DIR} + -DEXE_NAME=$<TARGET_FILE:${PROJECT_NAME}> + -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/windows_deploy.cmake) + + # create time stamp + add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD + WORKING_DIRECTORY "$<TARGET_FILE_DIR:${PROJECT_NAME}>" + COMMAND ${CMAKE_COMMAND} -DTIME_STAMP_FILE=${TIME_STAMP_FILE} + -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/time_stamp_create.cmake) + endif() -# Installation rules -install(TARGETS jami-qt - RUNTIME DESTINATION bin) - -# install .desktop in XDG desktop dir so that it is recognized by the system -install(FILES ${PROJECT_SOURCE_DIR}/jami-qt.desktop - DESTINATION ${JAMI_DATA_PREFIX}/applications) - -# install .desktop in the jami-qt data dir, so that it can be copied to the -# autostart dir by the client -install(FILES ${PROJECT_SOURCE_DIR}/jami-qt.desktop - DESTINATION - "${JAMI_DATA_PREFIX}/${PROJECT_NAME}" - PERMISSIONS - WORLD_READ - OWNER_WRITE - OWNER_READ - GROUP_READ -) - -# adjust JAMI_DATA_PREFIX for snap package -# (this must come after all 'install' commands that refer to -# JAMI_DATA_PREFIX; the following value is not meant to be used for -# any install destinations) -if(DEFINED ENV{SNAPCRAFT_PROJECT_NAME}) - set(JAMI_DATA_PREFIX "/snap/$ENV{SNAPCRAFT_PROJECT_NAME}/current/usr/share") -endif() + # executable name + set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "Jami") +else() + target_link_libraries(${PROJECT_NAME} + ${QML_LIBS} + ${LRC_LIB_NAME} + ${qrencode} + ${X11} + ${LIBNM_LIBRARIES} + ${LIBNOTIFY_LIBRARIES} + ${LIBGDKPIXBUF_LIBRARIES}) + + if(ENABLE_TESTS) + message("Add Jami tests") + add_subdirectory(tests) + endif() -# (this must come after the above adjustment to JAMI_DATA_PREFIX) -target_compile_definitions(jami-qt PRIVATE JAMI_INSTALL_PREFIX="${JAMI_DATA_PREFIX}") - -# logos -install(FILES images/jami.svg - DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/scalable/apps) - -install(FILES images/jami-48px.png - DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/48x48/apps - RENAME jami.png) - -install(FILES images/jami-32px.xpm - DESTINATION ${CMAKE_INSTALL_PREFIX}/share/pixmaps - RENAME jami.xpm) - -install(FILES jami-qt.appdata.xml - DESTINATION ${CMAKE_INSTALL_PREFIX}/share/metainfo) - -# install jami launcher that selects between clients -install( - FILES - "${PROJECT_SOURCE_DIR}/src/jami" - DESTINATION - ${CMAKE_INSTALL_PREFIX}/bin - PERMISSIONS - WORLD_READ - OWNER_WRITE - OWNER_READ - GROUP_READ - OWNER_EXECUTE - GROUP_EXECUTE - WORLD_EXECUTE) - -# add a target to generate API documentation with Doxygen and graphviz-dot -find_package(Doxygen) -find_program(dot "dot") -if(Doxygen_FOUND AND dot) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile.in ${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile @ONLY) - add_custom_target(doc - COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/doc - COMMENT "Generating API documentation with Doxygen" VERBATIM) - - # create doc/README.md symlink to README since Doxygen doesn't understand file with no extension - add_custom_command( - TARGET doc - PRE_BUILD - COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/README ${CMAKE_CURRENT_SOURCE_DIR}/doc/README.md) -endif() + # Installation rules + install(TARGETS jami-qt + RUNTIME DESTINATION bin) + + # install .desktop in XDG desktop dir so that it is recognized by the system + install(FILES ${PROJECT_SOURCE_DIR}/jami-qt.desktop + DESTINATION ${JAMI_DATA_PREFIX}/applications) + + # install .desktop in the jami-qt data dir, so that it can be copied to the + # autostart dir by the client + install(FILES ${PROJECT_SOURCE_DIR}/jami-qt.desktop + DESTINATION + "${JAMI_DATA_PREFIX}/${PROJECT_NAME}" + PERMISSIONS + WORLD_READ + OWNER_WRITE + OWNER_READ + GROUP_READ + ) + + # adjust JAMI_DATA_PREFIX for snap package + # (this must come after all 'install' commands that refer to + # JAMI_DATA_PREFIX; the following value is not meant to be used for + # any install destinations) + if(DEFINED ENV{SNAPCRAFT_PROJECT_NAME}) + set(JAMI_DATA_PREFIX "/snap/$ENV{SNAPCRAFT_PROJECT_NAME}/current/usr/share") + endif() + # (this must come after the above adjustment to JAMI_DATA_PREFIX) + target_compile_definitions(jami-qt PRIVATE JAMI_INSTALL_PREFIX="${JAMI_DATA_PREFIX}") + + # logos + install(FILES images/jami.svg + DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/scalable/apps) + + install(FILES images/jami-48px.png + DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/48x48/apps + RENAME jami.png) + + install(FILES images/jami-32px.xpm + DESTINATION ${CMAKE_INSTALL_PREFIX}/share/pixmaps + RENAME jami.xpm) + + install(FILES jami-qt.appdata.xml + DESTINATION ${CMAKE_INSTALL_PREFIX}/share/metainfo) + + # install jami launcher that selects between clients + install( + FILES + "${PROJECT_SOURCE_DIR}/src/jami" + DESTINATION + ${CMAKE_INSTALL_PREFIX}/bin + PERMISSIONS + WORLD_READ + OWNER_WRITE + OWNER_READ + GROUP_READ + OWNER_EXECUTE + GROUP_EXECUTE + WORLD_EXECUTE) + + # add a target to generate API documentation with Doxygen and graphviz-dot + find_package(Doxygen) + find_program(dot "dot") + if(Doxygen_FOUND AND dot) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile.in ${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile @ONLY) + add_custom_target(doc + COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/doc + COMMENT "Generating API documentation with Doxygen" VERBATIM) + + # create doc/README.md symlink to README since Doxygen doesn't understand file with no extension + add_custom_command( + TARGET doc + PRE_BUILD + COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/README ${CMAKE_CURRENT_SOURCE_DIR}/doc/README.md) + endif() -# translations -if(Qt5LinguistTools_FOUND) - message("Releasing and copying translation files") - file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/ring/translations/") - file(GLOB TS_FILES ${PROJECT_SOURCE_DIR}/translations/*.ts) - set_source_files_properties(${TS_FILES} PROPERTIES OUTPUT_LOCATION "share/ring/translations") - qt5_add_translation(QM_FILES ${TS_FILES}) - add_custom_target(translations ALL DEPENDS ${QM_FILES}) - install(DIRECTORY "${CMAKE_BINARY_DIR}/share/ring/translations/" - DESTINATION ${CMAKE_INSTALL_PREFIX}/share/ring/translations) -endif() + # translations + if(Qt5LinguistTools_FOUND) + message("Releasing and copying translation files") + file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/ring/translations/") + file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/libringclient/translations/") + file(GLOB TS_CLIENT_FILES ${PROJECT_SOURCE_DIR}/translations/*.ts) + file(GLOB QM_LRC_FILES ${LRC}/share/libringclient/translations/*.qm) + set_source_files_properties(${TS_CLIENT_FILES} PROPERTIES OUTPUT_LOCATION "share/ring/translations") + qt5_add_translation(QM_CLIENT_FILES ${TS_CLIENT_FILES}) + add_custom_target(translations_client ALL DEPENDS ${QM_CLIENT_FILES}) + install(DIRECTORY "${CMAKE_BINARY_DIR}/share/ring/translations/" + DESTINATION ${CMAKE_INSTALL_PREFIX}/share/ring/translations) + add_custom_target(translations_lrc ALL DEPENDS ${QM_LRC_FILES}) + install(DIRECTORY "${LRC}/share/libringclient/translations/" + DESTINATION ${CMAKE_INSTALL_PREFIX}/share/libringclient/translations) + endif() -# uninstall -configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in" - "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" - IMMEDIATE @ONLY) + # uninstall + configure_file( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" + IMMEDIATE @ONLY) -add_custom_target(uninstall - COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) + add_custom_target(uninstall + COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) +endif() \ No newline at end of file diff --git a/cmake/time_stamp_check.cmake b/cmake/time_stamp_check.cmake new file mode 100644 index 000000000..b0f44b7d9 --- /dev/null +++ b/cmake/time_stamp_check.cmake @@ -0,0 +1,13 @@ +execute_process(COMMAND git rev-parse HEAD + OUTPUT_VARIABLE VERSION_PATCH) + +# remove leading and trailing spaces +string(STRIP "${VERSION_PATCH}" VERSION_PATCH) + +message("Checking time stamp ...") +if(EXISTS ${TIME_STAMP_FILE}) + file (STRINGS ${TIME_STAMP_FILE} VERSION_IN_FILE) + if(NOT "${VERSION_IN_FILE}" STREQUAL "${VERSION_PATCH}") + file (REMOVE "${TIME_STAMP_FILE}") + endif() +endif() \ No newline at end of file diff --git a/cmake/time_stamp_create.cmake b/cmake/time_stamp_create.cmake new file mode 100644 index 000000000..7b8aff2b1 --- /dev/null +++ b/cmake/time_stamp_create.cmake @@ -0,0 +1,8 @@ +execute_process(COMMAND git rev-parse HEAD + OUTPUT_VARIABLE VERSION_PATCH) +if (EXISTS ${TIME_STAMP_FILE}) + message("Keep the old time stamp") +else() + message("Creating time stamp ...") + file(WRITE ${TIME_STAMP_FILE} "${VERSION_PATCH}") +endif() \ No newline at end of file diff --git a/cmake/windows_deploy.cmake b/cmake/windows_deploy.cmake new file mode 100644 index 000000000..f4d8c74b6 --- /dev/null +++ b/cmake/windows_deploy.cmake @@ -0,0 +1,22 @@ +if (EXISTS ${TIME_STAMP_FILE}) + message("No need to deploy") +else() + message("Deploying ...") + file(COPY "${DRING_PATH}/contrib/build/ffmpeg/Build/win32/x64/bin/avcodec-58.dll" + "${DRING_PATH}/contrib/build/ffmpeg/Build/win32/x64/bin/avutil-56.dll" + "${DRING_PATH}/contrib/build/ffmpeg/Build/win32/x64/bin/avformat-58.dll" + "${DRING_PATH}/contrib/build/ffmpeg/Build/win32/x64/bin/avdevice-58.dll" + "${DRING_PATH}/contrib/build/ffmpeg/Build/win32/x64/bin/swresample-3.dll" + "${DRING_PATH}/contrib/build/ffmpeg/Build/win32/x64/bin/swscale-5.dll" + "${DRING_PATH}/contrib/build/ffmpeg/Build/win32/x64/bin/avfilter-7.dll" + "${DRING_PATH}/contrib/build/openssl/libcrypto-1_1-x64.dll" + "${DRING_PATH}/contrib/build/openssl/libssl-1_1-x64.dll" + "${PROJECT_ROOT_DIR}/qt.conf" + "${PROJECT_ROOT_DIR}/images/jami.ico" + "${PROJECT_ROOT_DIR}/License.rtf" + DESTINATION ${COPY_TO_PATH}) + execute_process(COMMAND "${WIN_DEPLOY_QT_PATH}/windeployqt.exe" + --verbose 1 + --qmldir ${QML_SRC_DIR} + --release ${EXE_NAME}) +endif() \ No newline at end of file diff --git a/copy-runtime-files.py b/copy-runtime-files.py deleted file mode 100644 index a75dc7409..000000000 --- a/copy-runtime-files.py +++ /dev/null @@ -1,347 +0,0 @@ -import tempfile -import re -import sys -import os -import subprocess -import platform -import argparse -import shutil -import fileinput - -if platform.system() == "Windows": - from colorama import init - - # init ANSI escape character sequences for windows - init() - - -class bcolors: - HEADER = '\033[95m' - OKBLUE = '\033[94m' - OKCYAN = '\033[96m' - OKGREEN = '\033[92m' - WARNING = '\033[93m' - FAIL = '\033[91m' - ENDC = '\033[0m' - BOLD = '\033[1m' - UNDERLINE = '\033[4m' - - -def execute_cmd(cmd, use_subprocess_pipe=False): - p = subprocess.Popen(cmd, - shell=True, - stdout=subprocess.PIPE if use_subprocess_pipe else sys.stdout) - output, _ = p.communicate() - - if use_subprocess_pipe: - if output: - return output - return -1 - else: - if p.returncode != 0: - sys.exit() - - -class globalVar: - # global var - system_name = platform.system() - client_dir = os.path.dirname(os.path.realpath(__file__)) - mode = "Release" - qt_version = "" - qt_path = "" - daemon_path = client_dir + os.sep + '..' + os.sep + 'daemon' - lrc_path = client_dir + os.sep + '..' + os.sep + 'lrc' - output_path = "" - - stamp = execute_cmd('git rev-parse HEAD', True)[0:8] - if type(stamp) is bytes: - stamp = stamp.decode("utf-8") - stampFile = client_dir + os.sep + ".deploy.stamp" - - -def check_stamp(): - if os.path.exists(globalVar.stampFile): - with open(globalVar.stampFile) as f: - contents = f.read() - if contents.strip() == globalVar.stamp: - print(bcolors.OKGREEN + "Deployment stamp up-to-date" + bcolors.ENDC) - sys.exit() - - -def write_stamp(): - with open(".deploy.stamp", "w") as file: - file.write(globalVar.stamp) - - -def setup_parameters(parsed_args): - if globalVar.system_name == "Windows": - if parsed_args.mode: - if parsed_args.mode == "Beta": - globalVar.mode = "Beta" - - if parsed_args.qtVersion: - globalVar.qt_version = parsed_args.qtVersion - qt_minor_ver = int(globalVar.qt_version.split('.')[1]) - if qt_minor_ver < 14: - print(bcolors.WARNING + "Qt version not supported" + bcolors.ENDC) - sys.exit() - globalVar.qt_path = "C:\\Qt\\" + globalVar.qt_version + \ - ("\\msvc2017_64" if qt_minor_ver < 15 else "\\msvc2019_64") - else: - globalVar.qt_path = "C:\\Qt\\5.15.0\\msvc2019_64" - else: - if parsed_args.qtPath: - globalVar.qt_path = parsed_args.qtPath - else: - globalVar.qt_version = execute_cmd('qmake -v', True) - if globalVar.qt_version == -1: - print(bcolors.WARNING + "No qmake found, trying qmake-qt5..." + bcolors.ENDC) - - globalVar.qt_version = execute_cmd('qmake-qt5 -v', True) - if globalVar.qt_version == -1: - print(bcolors.FAIL + "No qmake found!" + bcolors.ENDC) - sys.exit() - - if type(globalVar.qt_version) is bytes: - globalVar.qt_version = globalVar.qt_version.decode("utf-8") - globalVar.qt_version = globalVar.qt_version.split( - 'Qt version')[1].split('in')[0].strip() - qt_minor_ver = int(globalVar.qt_version.split('.')[1]) - if qt_minor_ver < 14: - print(bcolors.WARNING + "Qt version not supported" + bcolors.ENDC) - sys.exit() - - if parsed_args.daemonPath: - globalVar.daemon_path = parsed_args.daemonPath - - if parsed_args.lrcPath: - globalVar.lrc_path = parsed_args.lrcPath - - if parsed_args.outputPath: - if not os.path.exists(parsed_args.outputPath): - os.makedirs(parsed_args.outputPath) - globalVar.output_path = parsed_args.outputPath - else: - if globalVar.system_name != "Windows": - globalVar.output_path = globalVar.client_dir + os.sep + 'build-local' - else: - globalVar.output_path = globalVar.client_dir + \ - os.sep + "x64" + os.sep + globalVar.mode - - -def copy_deployment_files(): - # dependency bin files and misc - files_to_copy = [ - globalVar.daemon_path + "\\contrib\\build\\ffmpeg\\Build\\win32\\x64\\bin\\avcodec-58.dll", - globalVar.daemon_path + "\\contrib\\build\\ffmpeg\\Build\\win32\\x64\\bin\\avutil-56.dll", - globalVar.daemon_path + - "\\contrib\\build\\ffmpeg\\Build\\win32\\x64\\bin\\avformat-58.dll", - globalVar.daemon_path + - "\\contrib\\build\\ffmpeg\\Build\\win32\\x64\\bin\\avdevice-58.dll", - globalVar.daemon_path + - "\\contrib\\build\\ffmpeg\\Build\\win32\\x64\\bin\\swresample-3.dll", - globalVar.daemon_path + "\\contrib\\build\\ffmpeg\\Build\\win32\\x64\\bin\\swscale-5.dll", - globalVar.daemon_path + "\\contrib\\build\\ffmpeg\\Build\\win32\\x64\\bin\\avfilter-7.dll", - globalVar.daemon_path + "\\contrib\\build\\openssl\\libcrypto-1_1-x64.dll", - globalVar.daemon_path + "\\contrib\\build\\openssl\\libssl-1_1-x64.dll", - globalVar.client_dir + "\\qt.conf", - globalVar.client_dir + "\\images\\jami.ico", - globalVar.client_dir + "\\License.rtf" - ] - - for file in files_to_copy: - print(bcolors.OKBLUE + "Copying: " + file + - " -> " + globalVar.output_path + bcolors.ENDC) - if os.path.exists(file): - shutil.copy(file, globalVar.output_path) - else: - print(bcolors.FAIL + file + " does not exist" + bcolors.ENDC) - sys.exit() - - # qt windeploy - win_deploy_qt = globalVar.qt_path + "\\bin\\windeployqt.exe --qmldir " + \ - globalVar.client_dir + "\\src --release " + globalVar.output_path + "\\Jami.exe" - execute_cmd(win_deploy_qt) - - -def copy_ringtones(): - # ringtones - copy_to_path = globalVar.output_path + os.sep + "ringtones" - if not os.path.exists(copy_to_path): - os.makedirs(copy_to_path) - ringtone_path = globalVar.client_dir + "\\..\\daemon\\ringtones" - - print(bcolors.OKCYAN + "Copying ringtones..." + bcolors.ENDC) - for _, _, files in os.walk(ringtone_path): - for file in files: - print(bcolors.OKBLUE + "Copying ringtone: " + - file + " -> " + copy_to_path + bcolors.ENDC) - try: - shutil.copy(ringtone_path + os.sep + file, copy_to_path) - except: - print(bcolors.FAIL + "Unable to copy file." + bcolors.ENDC) - - -def compile_and_copy_web_resources(): - # web resources - rcc = 'rcc' - - if globalVar.qt_path: - rcc = globalVar.qt_path + os.sep + 'bin' + os.sep + \ - 'rcc' + ('.exe' if globalVar.system_name == "Windows" else '') - - if execute_cmd(rcc + ' -v', True) == -1: - print(bcolors.WARNING + "No rcc found, trying rcc-qt5..." + bcolors.ENDC) - - rcc = rcc.replace('rcc', 'rcc-qt5') - if execute_cmd(rcc + ' -v', True) == -1: - print(bcolors.FAIL + "No rcc found!" + bcolors.ENDC) - sys.exit() - - lrc_web_resources_path = globalVar.lrc_path + os.sep + "src" + os.sep + 'webresource.qrc' - - execute_cmd(rcc + ' -binary ' + lrc_web_resources_path + - ' -o ' + globalVar.output_path + os.sep + 'webresource.rcc') - - -def release_and_copy_translations(): - # translations binary - lrelease = 'lrelease' - - if globalVar.qt_path: - lrelease = globalVar.qt_path + os.sep + 'bin' + os.sep + \ - 'lrelease' + ('.exe' if globalVar.system_name == "Windows" else '') - - if execute_cmd(lrelease + ' -version', True) == -1: - print(bcolors.WARNING + "No lrelease found, trying lrelease-qt5..." + bcolors.ENDC) - - lrelease = lrelease.replace('lrelease', 'lrelease-qt5') - if execute_cmd(lrelease + ' -version', True) == -1: - print(bcolors.FAIL + "No lrelease found!" + bcolors.ENDC) - sys.exit() - - qt_version_check = execute_cmd(lrelease + ' -version', True) - if type(qt_version_check) is bytes: - qt_version_check = qt_version_check.decode("utf-8") - qt_version_check = qt_version_check.split('version')[1].strip() - qt_minor_ver = int(qt_version_check.split('.')[1]) - if qt_minor_ver < 14: - print(bcolors.WARNING + "Qt version not supported" + bcolors.ENDC) - sys.exit() - - # lrc translations - lrc_ts_path = globalVar.lrc_path + os.sep + 'translations' - copy_to_path = globalVar.output_path + os.sep + 'share' + \ - os.sep + 'libringclient' + os.sep + 'translations' - if not os.path.exists(copy_to_path): - os.makedirs(copy_to_path) - - print(bcolors.OKCYAN + "Release lrc translations..." + bcolors.ENDC) - for _, _, files in os.walk(lrc_ts_path): - for file in files: - if file.endswith(".ts"): - execute_cmd(lrelease + " " + lrc_ts_path + os.sep + file) - - for _, _, files in os.walk(lrc_ts_path): - for file in files: - if file.endswith(".qm"): - print(bcolors.OKBLUE + "Copying translation file: " + - file + " -> " + copy_to_path + bcolors.ENDC) - shutil.copy(lrc_ts_path + os.sep + file, copy_to_path) - - # client translations - client_ts_path = globalVar.client_dir + os.sep + 'translations' - copy_to_path = globalVar.output_path + os.sep + \ - 'share' + os.sep + 'ring' + os.sep + 'translations' - if not os.path.exists(copy_to_path): - os.makedirs(copy_to_path) - - print(bcolors.OKCYAN + "Release client translations..." + bcolors.ENDC) - for _, _, files in os.walk(client_ts_path): - for file in files: - if file.endswith(".ts"): - execute_cmd(lrelease + " " + - client_ts_path + os.sep + file) - - for _, _, files in os.walk(client_ts_path): - for file in files: - if file.endswith(".qm"): - print(bcolors.OKBLUE + "Copying translation file: " + - file + " -> " + copy_to_path + bcolors.ENDC) - shutil.copy(client_ts_path + os.sep + file, copy_to_path) - - -def parse_args(): - ap = argparse.ArgumentParser(description="Copy runtime files tool") - if globalVar.system_name != "Windows": - ap.add_argument( - '-q', '--qtPath', default='', - help='Qt path') - else: - ap.add_argument( - '-m', '--mode', default='', - help='Release or Beta mode') - - ap.add_argument( - '-q', '--qtVersion', default='', - help='Qt version') - - ap.add_argument( - '-d', '--daemonPath', default='', - help='Daemon path') - ap.add_argument( - '-l', '--lrcPath', default='', - help='Lrc path') - ap.add_argument( - '-o', '--outputPath', default='', - help='Output path') - - parsed_args = ap.parse_args() - - return parsed_args - - -def main(): - # check stamp - check_stamp() - - # parse args - parsed_args = parse_args() - - # set up global var - setup_parameters(parsed_args) - - print(bcolors.OKCYAN + "****************************************" + bcolors.ENDC) - print(bcolors.OKBLUE + "copying deployment files..." + bcolors.ENDC) - print(bcolors.OKBLUE + "using daemonDir: " + - globalVar.daemon_path + bcolors.ENDC) - print(bcolors.OKBLUE + "using lrcDir: " + - globalVar.lrc_path + bcolors.ENDC) - if globalVar.qt_path: - print(bcolors.OKBLUE + "using QtDir: " + - globalVar.qt_path + bcolors.ENDC) - else: - print(bcolors.OKBLUE + "using system Qt" + bcolors.ENDC) - if globalVar.system_name == "Windows": - print(bcolors.OKBLUE + globalVar.mode + " mode" + bcolors.ENDC) - print(bcolors.OKCYAN + "****************************************" + bcolors.ENDC) - - # deployment - if globalVar.system_name == "Windows": - copy_deployment_files() - copy_ringtones() - - # translations - release_and_copy_translations() - - # web resources - compile_and_copy_web_resources() - - # write stamp - write_stamp() - - print(bcolors.OKGREEN + "Copy completed" + bcolors.ENDC) - - -if __name__ == '__main__': - main() diff --git a/jami-qt.pro b/jami-qt.pro deleted file mode 100644 index 9f0417c63..000000000 --- a/jami-qt.pro +++ /dev/null @@ -1,189 +0,0 @@ -win32-msvc { - TARGET = Jami - TEMPLATE = app - - QT += core winextras qml quickcontrols2 quick xml multimedia network webengine svg sql - - CONFIG += suppress_vcproj_warnings c++17 qtquickcompiler - - # library compatibility (boost, libnotify, etc.) - CONFIG += no_keywords - - QTQUICK_COMPILER_SKIPPED_RESOURCES += resources.qrc - - # compiler options - QMAKE_CXXFLAGS += /wd"4068" /wd"4099" /wd"4189" /wd"4267" /wd"4577" /wd"4467" /wd"4715" /wd"4828" - QMAKE_CXXFLAGS += /MP /GS /W3 /Gy /Zc:wchar_t /Zi /Gm- /O2 /Zc:inline /fp:precise /errorReport:prompt - QMAKE_CXXFLAGS += /Gd /Oi /MD /std:c++17 /FC /EHsc /nologo /sdl - - # linker options - QMAKE_LFLAGS+= /ignore:4006,4049,4078,4098 /FORCE:MULTIPLE /INCREMENTAL:NO /Debug /LTCG /NODEFAULTLIB:LIBCMT - - # preprocessor defines - DEFINES += UNICODE QT_NO_DEBUG NDEBUG - - # dependencies - LRC= ../lrc - DRING= ../daemon - QRENCODE= $$PWD/qrencode-win32/qrencode-win32 - - # client deps - INCLUDEPATH += $${QRENCODE} - LIBS += $${QRENCODE}/vc8/qrcodelib/x64/Release-Lib/qrcodelib.lib - - # lrc - INCLUDEPATH += $${LRC}/src/ - LIBS += $${LRC}/build/release/ringclient_static.lib - LIBS += $${LRC}/build/src/qtwrapper/Release/qtwrapper.lib - - # daemon - INCLUDEPATH += ../daemon/contrib/msvc/include/ - LIBS += $${DRING}/build/x64/ReleaseLib_win32/bin/dring.lib - LIBS += $${DRING}/contrib/msvc/lib/x64/libgnutls.lib - - # windows system libs - LIBS += Shell32.lib Ole32.lib Advapi32.lib Shlwapi.lib User32.lib Gdi32.lib Crypt32.lib Strmiids.lib - - # output paths - OBJECTS_DIR = obj/.obj - MOC_DIR = obj/.moc - RCC_DIR = obj/.rcc - UI_DIR = obj/.ui - - MODE = "Release" - - # ReleaseCompile config - contains(CONFIG, ReleaseCompile) { - MODE = "ReleaseCompile" - CONFIG(ReleaseCompile) { - message(ReleaseCompile config enabled) - Release: DEFINES += COMPILE_ONLY - } - } - - # beta config - contains(CONFIG, Beta) { - MODE = "Beta" - CONFIG(Beta) { - message(Beta config enabled) - Release: DESTDIR = x64/Beta - Release: DEFINES += BETA - } - } else { - Release: DESTDIR = x64/Release - } - Debug: DESTDIR = x64/Debug - - # qt dir - QMAKE_INCDIR_QT=$(QTDIR)\include - QMAKE_LIBDIR=$(QTDIR)\lib - QMAKE_MOC=$(QTDIR)\bin\moc.exe - QMAKE_QMAKE=$(QTDIR)\bin\qmake.exe - - # exe icons - Release: RC_FILE = ico.rc - - # run the deployment script(run windeployqt) - !equals(MODE, "ReleaseCompile") { - QMAKE_POST_LINK += $$quote(python .\copy-runtime-files.py -m $${MODE} -q $${QT_VERSION} -o $${DESTDIR}) - } -} - -# Input -HEADERS += \ - src/abstractitemmodelbase.h \ - src/avatarimageprovider.h \ - src/moderatorlistmodel.h \ - src/networkmanager.h \ - src/quickimageproviderbase.h \ - src/screensaver.h \ - src/smartlistmodel.h \ - src/updatemanager.h \ - src/utils.h \ - src/bannedlistmodel.h \ - src/version.h \ - src/accountlistmodel.h \ - src/runguard.h \ - src/webchathelpers.h \ - src/rendermanager.h \ - src/connectivitymonitor.h \ - src/jamiavatartheme.h \ - src/mainapplication.h \ - src/qrimageprovider.h \ - src/messagesadapter.h \ - src/accountadapter.h \ - src/tintedbuttonimageprovider.h \ - src/calladapter.h \ - src/conversationsadapter.h \ - src/distantrenderer.h \ - src/previewrenderer.h \ - src/qmladapterbase.h \ - src/avadapter.h \ - src/contactadapter.h \ - src/pluginadapter.h \ - src/settingsadapter.h \ - src/deviceitemlistmodel.h \ - src/pluginitemlistmodel.h \ - src/pluginhandleritemlistmodel.h \ - src/preferenceitemlistmodel.h \ - src/mediacodeclistmodel.h \ - src/accountstomigratelistmodel.h \ - src/audiodevicemodel.h \ - src/videoinputdevicemodel.h \ - src/pluginlistpreferencemodel.h \ - src/videoformatfpsmodel.h \ - src/videoformatresolutionmodel.h \ - src/audiomanagerlistmodel.h \ - src/qmlregister.h \ - src/qtutils.h \ - src/utilsadapter.h \ - src/systemtray.h \ - src/appsettingsmanager.h \ - src/lrcinstance.h - -SOURCES += \ - src/bannedlistmodel.cpp \ - src/accountlistmodel.cpp \ - src/moderatorlistmodel.cpp \ - src/networkmanager.cpp \ - src/runguard.cpp \ - src/screensaver.cpp \ - src/updatemanager.cpp \ - src/webchathelpers.cpp \ - src/main.cpp \ - src/smartlistmodel.cpp \ - src/utils.cpp \ - src/rendermanager.cpp \ - src/connectivitymonitor.cpp \ - src/mainapplication.cpp \ - src/messagesadapter.cpp \ - src/accountadapter.cpp \ - src/calladapter.cpp \ - src/conversationsadapter.cpp \ - src/distantrenderer.cpp \ - src/previewrenderer.cpp \ - src/avadapter.cpp \ - src/contactadapter.cpp \ - src/pluginadapter.cpp \ - src/settingsadapter.cpp \ - src/deviceitemlistmodel.cpp \ - src/pluginitemlistmodel.cpp \ - src/pluginhandleritemlistmodel.cpp \ - src/preferenceitemlistmodel.cpp \ - src/mediacodeclistmodel.cpp \ - src/accountstomigratelistmodel.cpp \ - src/audiodevicemodel.cpp \ - src/videoinputdevicemodel.cpp \ - src/pluginlistpreferencemodel.cpp \ - src/videoformatfpsmodel.cpp \ - src/videoformatresolutionmodel.cpp \ - src/audiomanagerlistmodel.cpp \ - src/qmlregister.cpp \ - src/utilsadapter.cpp \ - src/systemtray.cpp \ - src/appsettingsmanager.cpp \ - src/lrcinstance.cpp - -RESOURCES += \ - resources.qrc \ - qml.qrc diff --git a/jami-qt.sln b/jami-qt.sln index 82e2d69de..409d0fe20 100644 --- a/jami-qt.sln +++ b/jami-qt.sln @@ -2,7 +2,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.29613.14 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ring-daemon", "..\daemon\build\ring-daemon.vcxproj", "{1CA4822C-F599-3879-A78F-332D823E4871}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ring-daemon", "..\daemon\build\ring-daemon.vcxproj", "{8819D074-8F1F-3226-A611-F2E0BD9B6DBE}" ProjectSection(ProjectDependencies) = postProject {2BB84911-C1B4-4747-B93D-36AA82CC5031} = {2BB84911-C1B4-4747-B93D-36AA82CC5031} {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4} = {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4} @@ -11,17 +11,17 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ring-daemon", "..\daemon\bu {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65} = {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65} {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B} = {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B} {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0} = {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0} - {711397CE-E5D5-467D-9457-8716C047E50C} = {711397CE-E5D5-467D-9457-8716C047E50C} + {E23F393D-035D-3A88-8335-96339271FFC2} = {E23F393D-035D-3A88-8335-96339271FFC2} {B8719FD5-E8A6-4A36-943C-891D07F5DD21} = {B8719FD5-E8A6-4A36-943C-891D07F5DD21} {DA0E03ED-53A7-4050-8A85-90541C5509F8} = {DA0E03ED-53A7-4050-8A85-90541C5509F8} {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37} = {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ringclient_static", "..\lrc\build\ringclient_static.vcxproj", "{774F1C61-6659-36E6-9519-17A753890576}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ringclient_static", "..\lrc\build\ringclient_static.vcxproj", "{B39971A8-F247-31DE-8029-A90CE9549533}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qtwrapper", "..\lrc\build\src\qtwrapper\qtwrapper.vcxproj", "{2CFF20AA-9341-3564-A044-C38E70D5372A}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qtwrapper", "..\lrc\build\src\qtwrapper\qtwrapper.vcxproj", "{4295A40A-1D7D-3A99-AB29-0C144CAB27F1}" ProjectSection(ProjectDependencies) = postProject - {1CA4822C-F599-3879-A78F-332D823E4871} = {1CA4822C-F599-3879-A78F-332D823E4871} + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE} = {8819D074-8F1F-3226-A611-F2E0BD9B6DBE} EndProjectSection EndProject Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "JamiInstaller", "JamiInstaller\JamiInstaller.wixproj", "{DBBFBC55-1C20-4D21-AE3B-6E8B14C4FE48}" @@ -56,12 +56,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "client", "client", "{1ECB5B EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "contrib", "contrib", "{B4FD804C-ABD9-4F54-858B-911F0119580C}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opendht", "..\daemon\contrib\build\opendht\build\opendht-static.vcxproj", "{711397CE-E5D5-467D-9457-8716C047E50C}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opendht-static", "..\daemon\contrib\build\opendht\build\opendht-static.vcxproj", "{E23F393D-035D-3A88-8335-96339271FFC2}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jami-qt", "jami-qt.vcxproj", "{A1BDC12C-5DF6-3E77-9793-AB9AB5C82027}" - ProjectSection(ProjectDependencies) = postProject - {774F1C61-6659-36E6-9519-17A753890576} = {774F1C61-6659-36E6-9519-17A753890576} - EndProjectSection +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jami-qt", "build\jami-qt.vcxproj", "{EC128C5F-DDC7-3828-98C8-B9CEAD61B131}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -71,6 +68,9 @@ Global Debug|Any CPU = Debug|Any CPU Debug|x64 = Debug|x64 Debug|x86 = Debug|x86 + MinSizeRel|Any CPU = MinSizeRel|Any CPU + MinSizeRel|x64 = MinSizeRel|x64 + MinSizeRel|x86 = MinSizeRel|x86 Release|Any CPU = Release|Any CPU Release|x64 = Release|x64 Release|x86 = Release|x86 @@ -83,102 +83,133 @@ Global ReleaseLib|Any CPU = ReleaseLib|Any CPU ReleaseLib|x64 = ReleaseLib|x64 ReleaseLib|x86 = ReleaseLib|x86 + RelWithDebInfo|Any CPU = RelWithDebInfo|Any CPU + RelWithDebInfo|x64 = RelWithDebInfo|x64 + RelWithDebInfo|x86 = RelWithDebInfo|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {1CA4822C-F599-3879-A78F-332D823E4871}.Beta|Any CPU.ActiveCfg = ReleaseLib_win32|x64 - {1CA4822C-F599-3879-A78F-332D823E4871}.Beta|Any CPU.Build.0 = ReleaseLib_win32|x64 - {1CA4822C-F599-3879-A78F-332D823E4871}.Beta|x64.ActiveCfg = ReleaseLib_win32|x64 - {1CA4822C-F599-3879-A78F-332D823E4871}.Beta|x64.Build.0 = ReleaseLib_win32|x64 - {1CA4822C-F599-3879-A78F-332D823E4871}.Beta|x86.ActiveCfg = ReleaseLib_win32|x64 - {1CA4822C-F599-3879-A78F-332D823E4871}.Beta|x86.Build.0 = ReleaseLib_win32|x64 - {1CA4822C-F599-3879-A78F-332D823E4871}.Debug|Any CPU.ActiveCfg = ReleaseLib_win32|x64 - {1CA4822C-F599-3879-A78F-332D823E4871}.Debug|Any CPU.Build.0 = ReleaseLib_win32|x64 - {1CA4822C-F599-3879-A78F-332D823E4871}.Debug|x64.ActiveCfg = ReleaseLib_win32|x64 - {1CA4822C-F599-3879-A78F-332D823E4871}.Debug|x64.Build.0 = ReleaseLib_win32|x64 - {1CA4822C-F599-3879-A78F-332D823E4871}.Debug|x86.ActiveCfg = ReleaseLib_win32|x64 - {1CA4822C-F599-3879-A78F-332D823E4871}.Debug|x86.Build.0 = ReleaseLib_win32|x64 - {1CA4822C-F599-3879-A78F-332D823E4871}.Release|Any CPU.ActiveCfg = ReleaseLib_win32|x64 - {1CA4822C-F599-3879-A78F-332D823E4871}.Release|Any CPU.Build.0 = ReleaseLib_win32|x64 - {1CA4822C-F599-3879-A78F-332D823E4871}.Release|x64.ActiveCfg = ReleaseLib_win32|x64 - {1CA4822C-F599-3879-A78F-332D823E4871}.Release|x64.Build.0 = ReleaseLib_win32|x64 - {1CA4822C-F599-3879-A78F-332D823E4871}.Release|x86.ActiveCfg = ReleaseLib_win32|x64 - {1CA4822C-F599-3879-A78F-332D823E4871}.Release|x86.Build.0 = ReleaseLib_win32|x64 - {1CA4822C-F599-3879-A78F-332D823E4871}.ReleaseCompile|Any CPU.ActiveCfg = ReleaseLib_win32|x64 - {1CA4822C-F599-3879-A78F-332D823E4871}.ReleaseCompile|Any CPU.Build.0 = ReleaseLib_win32|x64 - {1CA4822C-F599-3879-A78F-332D823E4871}.ReleaseCompile|x64.ActiveCfg = ReleaseLib_win32|x64 - {1CA4822C-F599-3879-A78F-332D823E4871}.ReleaseCompile|x64.Build.0 = ReleaseLib_win32|x64 - {1CA4822C-F599-3879-A78F-332D823E4871}.ReleaseCompile|x86.ActiveCfg = ReleaseLib_win32|x64 - {1CA4822C-F599-3879-A78F-332D823E4871}.ReleaseCompile|x86.Build.0 = ReleaseLib_win32|x64 - {1CA4822C-F599-3879-A78F-332D823E4871}.ReleaseLib_win32|Any CPU.ActiveCfg = ReleaseLib_win32|x64 - {1CA4822C-F599-3879-A78F-332D823E4871}.ReleaseLib_win32|x64.ActiveCfg = ReleaseLib_win32|x64 - {1CA4822C-F599-3879-A78F-332D823E4871}.ReleaseLib_win32|x64.Build.0 = ReleaseLib_win32|x64 - {1CA4822C-F599-3879-A78F-332D823E4871}.ReleaseLib_win32|x86.ActiveCfg = ReleaseLib_win32|x64 - {1CA4822C-F599-3879-A78F-332D823E4871}.ReleaseLib|Any CPU.ActiveCfg = ReleaseLib_win32|x64 - {1CA4822C-F599-3879-A78F-332D823E4871}.ReleaseLib|Any CPU.Build.0 = ReleaseLib_win32|x64 - {1CA4822C-F599-3879-A78F-332D823E4871}.ReleaseLib|x64.ActiveCfg = ReleaseLib_win32|x64 - {1CA4822C-F599-3879-A78F-332D823E4871}.ReleaseLib|x64.Build.0 = ReleaseLib_win32|x64 - {1CA4822C-F599-3879-A78F-332D823E4871}.ReleaseLib|x86.ActiveCfg = ReleaseLib_win32|x64 - {1CA4822C-F599-3879-A78F-332D823E4871}.ReleaseLib|x86.Build.0 = ReleaseLib_win32|x64 - {774F1C61-6659-36E6-9519-17A753890576}.Beta|Any CPU.ActiveCfg = Release|x64 - {774F1C61-6659-36E6-9519-17A753890576}.Beta|x64.ActiveCfg = Release|x64 - {774F1C61-6659-36E6-9519-17A753890576}.Beta|x64.Build.0 = Release|x64 - {774F1C61-6659-36E6-9519-17A753890576}.Beta|x86.ActiveCfg = Release|x64 - {774F1C61-6659-36E6-9519-17A753890576}.Debug|Any CPU.ActiveCfg = Debug|x64 - {774F1C61-6659-36E6-9519-17A753890576}.Debug|x64.ActiveCfg = Debug|x64 - {774F1C61-6659-36E6-9519-17A753890576}.Debug|x64.Build.0 = Debug|x64 - {774F1C61-6659-36E6-9519-17A753890576}.Debug|x86.ActiveCfg = Debug|x64 - {774F1C61-6659-36E6-9519-17A753890576}.Release|Any CPU.ActiveCfg = Release|x64 - {774F1C61-6659-36E6-9519-17A753890576}.Release|x64.ActiveCfg = Release|x64 - {774F1C61-6659-36E6-9519-17A753890576}.Release|x64.Build.0 = Release|x64 - {774F1C61-6659-36E6-9519-17A753890576}.Release|x86.ActiveCfg = Release|x64 - {774F1C61-6659-36E6-9519-17A753890576}.ReleaseCompile|Any CPU.ActiveCfg = Release|x64 - {774F1C61-6659-36E6-9519-17A753890576}.ReleaseCompile|Any CPU.Build.0 = Release|x64 - {774F1C61-6659-36E6-9519-17A753890576}.ReleaseCompile|x64.ActiveCfg = Release|x64 - {774F1C61-6659-36E6-9519-17A753890576}.ReleaseCompile|x64.Build.0 = Release|x64 - {774F1C61-6659-36E6-9519-17A753890576}.ReleaseCompile|x86.ActiveCfg = Release|x64 - {774F1C61-6659-36E6-9519-17A753890576}.ReleaseCompile|x86.Build.0 = Release|x64 - {774F1C61-6659-36E6-9519-17A753890576}.ReleaseLib_win32|Any CPU.ActiveCfg = RelWithDebInfo|x64 - {774F1C61-6659-36E6-9519-17A753890576}.ReleaseLib_win32|Any CPU.Build.0 = RelWithDebInfo|x64 - {774F1C61-6659-36E6-9519-17A753890576}.ReleaseLib_win32|x64.ActiveCfg = Release|x64 - {774F1C61-6659-36E6-9519-17A753890576}.ReleaseLib_win32|x64.Build.0 = Release|x64 - {774F1C61-6659-36E6-9519-17A753890576}.ReleaseLib_win32|x86.ActiveCfg = RelWithDebInfo|x64 - {774F1C61-6659-36E6-9519-17A753890576}.ReleaseLib_win32|x86.Build.0 = RelWithDebInfo|x64 - {774F1C61-6659-36E6-9519-17A753890576}.ReleaseLib|Any CPU.ActiveCfg = RelWithDebInfo|x64 - {774F1C61-6659-36E6-9519-17A753890576}.ReleaseLib|Any CPU.Build.0 = RelWithDebInfo|x64 - {774F1C61-6659-36E6-9519-17A753890576}.ReleaseLib|x64.ActiveCfg = Release|x64 - {774F1C61-6659-36E6-9519-17A753890576}.ReleaseLib|x64.Build.0 = Release|x64 - {774F1C61-6659-36E6-9519-17A753890576}.ReleaseLib|x86.ActiveCfg = MinSizeRel|x64 - {774F1C61-6659-36E6-9519-17A753890576}.ReleaseLib|x86.Build.0 = MinSizeRel|x64 - {2CFF20AA-9341-3564-A044-C38E70D5372A}.Beta|Any CPU.ActiveCfg = Release|x64 - {2CFF20AA-9341-3564-A044-C38E70D5372A}.Beta|x64.ActiveCfg = Release|x64 - {2CFF20AA-9341-3564-A044-C38E70D5372A}.Beta|x64.Build.0 = Release|x64 - {2CFF20AA-9341-3564-A044-C38E70D5372A}.Beta|x86.ActiveCfg = Release|x64 - {2CFF20AA-9341-3564-A044-C38E70D5372A}.Debug|Any CPU.ActiveCfg = Debug|x64 - {2CFF20AA-9341-3564-A044-C38E70D5372A}.Debug|x64.ActiveCfg = Debug|x64 - {2CFF20AA-9341-3564-A044-C38E70D5372A}.Debug|x64.Build.0 = Debug|x64 - {2CFF20AA-9341-3564-A044-C38E70D5372A}.Debug|x86.ActiveCfg = Debug|x64 - {2CFF20AA-9341-3564-A044-C38E70D5372A}.Release|Any CPU.ActiveCfg = Release|x64 - {2CFF20AA-9341-3564-A044-C38E70D5372A}.Release|x64.ActiveCfg = Release|x64 - {2CFF20AA-9341-3564-A044-C38E70D5372A}.Release|x64.Build.0 = Release|x64 - {2CFF20AA-9341-3564-A044-C38E70D5372A}.Release|x86.ActiveCfg = Release|x64 - {2CFF20AA-9341-3564-A044-C38E70D5372A}.ReleaseCompile|Any CPU.ActiveCfg = Release|x64 - {2CFF20AA-9341-3564-A044-C38E70D5372A}.ReleaseCompile|Any CPU.Build.0 = Release|x64 - {2CFF20AA-9341-3564-A044-C38E70D5372A}.ReleaseCompile|x64.ActiveCfg = Release|x64 - {2CFF20AA-9341-3564-A044-C38E70D5372A}.ReleaseCompile|x64.Build.0 = Release|x64 - {2CFF20AA-9341-3564-A044-C38E70D5372A}.ReleaseCompile|x86.ActiveCfg = Release|x64 - {2CFF20AA-9341-3564-A044-C38E70D5372A}.ReleaseCompile|x86.Build.0 = Release|x64 - {2CFF20AA-9341-3564-A044-C38E70D5372A}.ReleaseLib_win32|Any CPU.ActiveCfg = RelWithDebInfo|x64 - {2CFF20AA-9341-3564-A044-C38E70D5372A}.ReleaseLib_win32|Any CPU.Build.0 = RelWithDebInfo|x64 - {2CFF20AA-9341-3564-A044-C38E70D5372A}.ReleaseLib_win32|x64.ActiveCfg = Release|x64 - {2CFF20AA-9341-3564-A044-C38E70D5372A}.ReleaseLib_win32|x64.Build.0 = Release|x64 - {2CFF20AA-9341-3564-A044-C38E70D5372A}.ReleaseLib_win32|x86.ActiveCfg = RelWithDebInfo|x64 - {2CFF20AA-9341-3564-A044-C38E70D5372A}.ReleaseLib_win32|x86.Build.0 = RelWithDebInfo|x64 - {2CFF20AA-9341-3564-A044-C38E70D5372A}.ReleaseLib|Any CPU.ActiveCfg = RelWithDebInfo|x64 - {2CFF20AA-9341-3564-A044-C38E70D5372A}.ReleaseLib|Any CPU.Build.0 = RelWithDebInfo|x64 - {2CFF20AA-9341-3564-A044-C38E70D5372A}.ReleaseLib|x64.ActiveCfg = Release|x64 - {2CFF20AA-9341-3564-A044-C38E70D5372A}.ReleaseLib|x64.Build.0 = Release|x64 - {2CFF20AA-9341-3564-A044-C38E70D5372A}.ReleaseLib|x86.ActiveCfg = MinSizeRel|x64 - {2CFF20AA-9341-3564-A044-C38E70D5372A}.ReleaseLib|x86.Build.0 = MinSizeRel|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.Beta|Any CPU.ActiveCfg = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.Beta|Any CPU.Build.0 = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.Beta|x64.ActiveCfg = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.Beta|x64.Build.0 = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.Beta|x86.ActiveCfg = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.Beta|x86.Build.0 = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.Debug|Any CPU.ActiveCfg = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.Debug|Any CPU.Build.0 = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.Debug|x64.ActiveCfg = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.Debug|x64.Build.0 = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.Debug|x86.ActiveCfg = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.Debug|x86.Build.0 = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.MinSizeRel|Any CPU.ActiveCfg = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.MinSizeRel|Any CPU.Build.0 = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.MinSizeRel|x64.ActiveCfg = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.MinSizeRel|x64.Build.0 = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.MinSizeRel|x86.ActiveCfg = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.MinSizeRel|x86.Build.0 = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.Release|Any CPU.ActiveCfg = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.Release|Any CPU.Build.0 = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.Release|x64.ActiveCfg = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.Release|x64.Build.0 = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.Release|x86.ActiveCfg = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.Release|x86.Build.0 = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.ReleaseCompile|Any CPU.ActiveCfg = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.ReleaseCompile|Any CPU.Build.0 = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.ReleaseCompile|x64.ActiveCfg = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.ReleaseCompile|x64.Build.0 = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.ReleaseCompile|x86.ActiveCfg = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.ReleaseCompile|x86.Build.0 = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.ReleaseLib_win32|Any CPU.ActiveCfg = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.ReleaseLib_win32|x64.ActiveCfg = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.ReleaseLib_win32|x64.Build.0 = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.ReleaseLib_win32|x86.ActiveCfg = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.ReleaseLib|Any CPU.ActiveCfg = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.ReleaseLib|Any CPU.Build.0 = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.ReleaseLib|x64.ActiveCfg = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.ReleaseLib|x64.Build.0 = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.ReleaseLib|x86.ActiveCfg = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.ReleaseLib|x86.Build.0 = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.RelWithDebInfo|Any CPU.ActiveCfg = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.RelWithDebInfo|Any CPU.Build.0 = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.RelWithDebInfo|x64.ActiveCfg = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.RelWithDebInfo|x64.Build.0 = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.RelWithDebInfo|x86.ActiveCfg = ReleaseLib_win32|x64 + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE}.RelWithDebInfo|x86.Build.0 = ReleaseLib_win32|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.Beta|Any CPU.ActiveCfg = Release|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.Beta|x64.ActiveCfg = Release|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.Beta|x64.Build.0 = Release|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.Beta|x86.ActiveCfg = Release|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.Debug|Any CPU.ActiveCfg = Debug|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.Debug|x64.ActiveCfg = Debug|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.Debug|x64.Build.0 = Debug|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.Debug|x86.ActiveCfg = Debug|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.MinSizeRel|Any CPU.ActiveCfg = MinSizeRel|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.MinSizeRel|x64.Build.0 = MinSizeRel|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.MinSizeRel|x86.ActiveCfg = MinSizeRel|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.Release|Any CPU.ActiveCfg = Release|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.Release|x64.ActiveCfg = Release|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.Release|x64.Build.0 = Release|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.Release|x86.ActiveCfg = Release|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.ReleaseCompile|Any CPU.ActiveCfg = Release|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.ReleaseCompile|Any CPU.Build.0 = Release|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.ReleaseCompile|x64.ActiveCfg = Release|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.ReleaseCompile|x64.Build.0 = Release|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.ReleaseCompile|x86.ActiveCfg = Release|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.ReleaseCompile|x86.Build.0 = Release|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.ReleaseLib_win32|Any CPU.ActiveCfg = RelWithDebInfo|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.ReleaseLib_win32|Any CPU.Build.0 = RelWithDebInfo|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.ReleaseLib_win32|x64.ActiveCfg = Release|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.ReleaseLib_win32|x64.Build.0 = Release|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.ReleaseLib_win32|x86.ActiveCfg = RelWithDebInfo|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.ReleaseLib_win32|x86.Build.0 = RelWithDebInfo|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.ReleaseLib|Any CPU.ActiveCfg = RelWithDebInfo|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.ReleaseLib|Any CPU.Build.0 = RelWithDebInfo|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.ReleaseLib|x64.ActiveCfg = Release|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.ReleaseLib|x64.Build.0 = Release|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.ReleaseLib|x86.ActiveCfg = MinSizeRel|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.ReleaseLib|x86.Build.0 = MinSizeRel|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.RelWithDebInfo|Any CPU.ActiveCfg = RelWithDebInfo|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 + {B39971A8-F247-31DE-8029-A90CE9549533}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.Beta|Any CPU.ActiveCfg = Release|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.Beta|x64.ActiveCfg = Release|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.Beta|x64.Build.0 = Release|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.Beta|x86.ActiveCfg = Release|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.Debug|Any CPU.ActiveCfg = Debug|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.Debug|x64.ActiveCfg = Debug|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.Debug|x64.Build.0 = Debug|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.Debug|x86.ActiveCfg = Debug|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.MinSizeRel|Any CPU.ActiveCfg = MinSizeRel|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.MinSizeRel|x64.Build.0 = MinSizeRel|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.MinSizeRel|x86.ActiveCfg = MinSizeRel|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.Release|Any CPU.ActiveCfg = Release|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.Release|x64.ActiveCfg = Release|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.Release|x64.Build.0 = Release|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.Release|x86.ActiveCfg = Release|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.ReleaseCompile|Any CPU.ActiveCfg = Release|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.ReleaseCompile|Any CPU.Build.0 = Release|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.ReleaseCompile|x64.ActiveCfg = Release|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.ReleaseCompile|x64.Build.0 = Release|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.ReleaseCompile|x86.ActiveCfg = Release|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.ReleaseCompile|x86.Build.0 = Release|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.ReleaseLib_win32|Any CPU.ActiveCfg = RelWithDebInfo|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.ReleaseLib_win32|Any CPU.Build.0 = RelWithDebInfo|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.ReleaseLib_win32|x64.ActiveCfg = Release|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.ReleaseLib_win32|x64.Build.0 = Release|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.ReleaseLib_win32|x86.ActiveCfg = RelWithDebInfo|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.ReleaseLib_win32|x86.Build.0 = RelWithDebInfo|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.ReleaseLib|Any CPU.ActiveCfg = RelWithDebInfo|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.ReleaseLib|Any CPU.Build.0 = RelWithDebInfo|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.ReleaseLib|x64.ActiveCfg = Release|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.ReleaseLib|x64.Build.0 = Release|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.ReleaseLib|x86.ActiveCfg = MinSizeRel|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.ReleaseLib|x86.Build.0 = MinSizeRel|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.RelWithDebInfo|Any CPU.ActiveCfg = RelWithDebInfo|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|x64 {DBBFBC55-1C20-4D21-AE3B-6E8B14C4FE48}.Beta|Any CPU.ActiveCfg = Release|x64 {DBBFBC55-1C20-4D21-AE3B-6E8B14C4FE48}.Beta|x64.ActiveCfg = Beta|x64 {DBBFBC55-1C20-4D21-AE3B-6E8B14C4FE48}.Beta|x64.Build.0 = Beta|x64 @@ -189,6 +220,12 @@ Global {DBBFBC55-1C20-4D21-AE3B-6E8B14C4FE48}.Debug|x64.Build.0 = Beta|x64 {DBBFBC55-1C20-4D21-AE3B-6E8B14C4FE48}.Debug|x86.ActiveCfg = Beta|x64 {DBBFBC55-1C20-4D21-AE3B-6E8B14C4FE48}.Debug|x86.Build.0 = Beta|x64 + {DBBFBC55-1C20-4D21-AE3B-6E8B14C4FE48}.MinSizeRel|Any CPU.ActiveCfg = Beta|x64 + {DBBFBC55-1C20-4D21-AE3B-6E8B14C4FE48}.MinSizeRel|Any CPU.Build.0 = Beta|x64 + {DBBFBC55-1C20-4D21-AE3B-6E8B14C4FE48}.MinSizeRel|x64.ActiveCfg = Beta|x64 + {DBBFBC55-1C20-4D21-AE3B-6E8B14C4FE48}.MinSizeRel|x64.Build.0 = Beta|x64 + {DBBFBC55-1C20-4D21-AE3B-6E8B14C4FE48}.MinSizeRel|x86.ActiveCfg = Beta|x64 + {DBBFBC55-1C20-4D21-AE3B-6E8B14C4FE48}.MinSizeRel|x86.Build.0 = Beta|x64 {DBBFBC55-1C20-4D21-AE3B-6E8B14C4FE48}.Release|Any CPU.ActiveCfg = Release|x64 {DBBFBC55-1C20-4D21-AE3B-6E8B14C4FE48}.Release|x64.ActiveCfg = Release|x64 {DBBFBC55-1C20-4D21-AE3B-6E8B14C4FE48}.Release|x64.Build.0 = Release|x64 @@ -211,6 +248,12 @@ Global {DBBFBC55-1C20-4D21-AE3B-6E8B14C4FE48}.ReleaseLib|x64.Build.0 = Release|x64 {DBBFBC55-1C20-4D21-AE3B-6E8B14C4FE48}.ReleaseLib|x86.ActiveCfg = Release|x64 {DBBFBC55-1C20-4D21-AE3B-6E8B14C4FE48}.ReleaseLib|x86.Build.0 = Release|x64 + {DBBFBC55-1C20-4D21-AE3B-6E8B14C4FE48}.RelWithDebInfo|Any CPU.ActiveCfg = Beta|x64 + {DBBFBC55-1C20-4D21-AE3B-6E8B14C4FE48}.RelWithDebInfo|Any CPU.Build.0 = Beta|x64 + {DBBFBC55-1C20-4D21-AE3B-6E8B14C4FE48}.RelWithDebInfo|x64.ActiveCfg = Release|x64 + {DBBFBC55-1C20-4D21-AE3B-6E8B14C4FE48}.RelWithDebInfo|x64.Build.0 = Release|x64 + {DBBFBC55-1C20-4D21-AE3B-6E8B14C4FE48}.RelWithDebInfo|x86.ActiveCfg = Beta|x64 + {DBBFBC55-1C20-4D21-AE3B-6E8B14C4FE48}.RelWithDebInfo|x86.Build.0 = Beta|x64 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Beta|Any CPU.ActiveCfg = Release|Win32 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Beta|x64.ActiveCfg = Release|x64 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Beta|x64.Build.0 = Release|x64 @@ -221,6 +264,12 @@ Global {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Debug|x64.Build.0 = Debug|x64 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Debug|x86.ActiveCfg = Debug|Win32 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Debug|x86.Build.0 = Debug|Win32 + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.MinSizeRel|Any CPU.ActiveCfg = Debug-Dynamic|ARM + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.MinSizeRel|Any CPU.Build.0 = Debug-Dynamic|ARM + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.MinSizeRel|x64.ActiveCfg = Debug-Dynamic|x64 + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.MinSizeRel|x64.Build.0 = Debug-Dynamic|x64 + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.MinSizeRel|x86.ActiveCfg = Debug-Dynamic|Win32 + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.MinSizeRel|x86.Build.0 = Debug-Dynamic|Win32 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Release|Any CPU.ActiveCfg = Release|Win32 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Release|x64.ActiveCfg = Release|x64 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Release|x64.Build.0 = Release|x64 @@ -244,6 +293,12 @@ Global {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.ReleaseLib|x64.Build.0 = Release|x64 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.ReleaseLib|x86.ActiveCfg = Release-Static|Win32 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.ReleaseLib|x86.Build.0 = Release-Static|Win32 + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.RelWithDebInfo|Any CPU.ActiveCfg = Debug-Dynamic|ARM + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.RelWithDebInfo|Any CPU.Build.0 = Debug-Dynamic|ARM + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.RelWithDebInfo|x64.ActiveCfg = Release-Dynamic|x64 + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.RelWithDebInfo|x64.Build.0 = Release-Dynamic|x64 + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.RelWithDebInfo|x86.ActiveCfg = Release-Dynamic|Win32 + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.RelWithDebInfo|x86.Build.0 = Release-Dynamic|Win32 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Beta|Any CPU.ActiveCfg = Release|Win32 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Beta|x64.ActiveCfg = Release|x64 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Beta|x64.Build.0 = Release|x64 @@ -254,6 +309,12 @@ Global {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Debug|x64.Build.0 = Debug|x64 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Debug|x86.ActiveCfg = Debug|Win32 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Debug|x86.Build.0 = Debug|Win32 + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.MinSizeRel|Any CPU.ActiveCfg = Debug-Dynamic|ARM + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.MinSizeRel|Any CPU.Build.0 = Debug-Dynamic|ARM + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.MinSizeRel|x64.ActiveCfg = Debug-Dynamic|x64 + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.MinSizeRel|x64.Build.0 = Debug-Dynamic|x64 + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.MinSizeRel|x86.ActiveCfg = Debug-Dynamic|Win32 + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.MinSizeRel|x86.Build.0 = Debug-Dynamic|Win32 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Release|Any CPU.ActiveCfg = Release|Win32 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Release|x64.ActiveCfg = Release|x64 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Release|x64.Build.0 = Release|x64 @@ -277,6 +338,12 @@ Global {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.ReleaseLib|x64.Build.0 = Release|x64 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.ReleaseLib|x86.ActiveCfg = Release-Static|Win32 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.ReleaseLib|x86.Build.0 = Release-Static|Win32 + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.RelWithDebInfo|Any CPU.ActiveCfg = Debug-Dynamic|ARM + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.RelWithDebInfo|Any CPU.Build.0 = Debug-Dynamic|ARM + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.RelWithDebInfo|x64.ActiveCfg = Release-Dynamic|x64 + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.RelWithDebInfo|x64.Build.0 = Release-Dynamic|x64 + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.RelWithDebInfo|x86.ActiveCfg = Release-Dynamic|Win32 + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.RelWithDebInfo|x86.Build.0 = Release-Dynamic|Win32 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Beta|Any CPU.ActiveCfg = Release|Win32 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Beta|x64.ActiveCfg = Release|x64 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Beta|x64.Build.0 = Release|x64 @@ -287,6 +354,12 @@ Global {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Debug|x64.Build.0 = Debug|x64 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Debug|x86.ActiveCfg = Debug|Win32 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Debug|x86.Build.0 = Debug|Win32 + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.MinSizeRel|Any CPU.ActiveCfg = Debug-Dynamic|ARM + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.MinSizeRel|Any CPU.Build.0 = Debug-Dynamic|ARM + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.MinSizeRel|x64.ActiveCfg = Debug-Dynamic|x64 + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.MinSizeRel|x64.Build.0 = Debug-Dynamic|x64 + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.MinSizeRel|x86.ActiveCfg = Debug-Dynamic|Win32 + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.MinSizeRel|x86.Build.0 = Debug-Dynamic|Win32 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Release|Any CPU.ActiveCfg = Release|Win32 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Release|x64.ActiveCfg = Release|x64 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Release|x64.Build.0 = Release|x64 @@ -310,6 +383,12 @@ Global {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.ReleaseLib|x64.Build.0 = Release|x64 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.ReleaseLib|x86.ActiveCfg = Release-Static|Win32 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.ReleaseLib|x86.Build.0 = Release-Static|Win32 + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.RelWithDebInfo|Any CPU.ActiveCfg = Debug-Dynamic|ARM + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.RelWithDebInfo|Any CPU.Build.0 = Debug-Dynamic|ARM + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.RelWithDebInfo|x64.ActiveCfg = Release-Dynamic|x64 + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.RelWithDebInfo|x64.Build.0 = Release-Dynamic|x64 + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.RelWithDebInfo|x86.ActiveCfg = Release-Dynamic|Win32 + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.RelWithDebInfo|x86.Build.0 = Release-Dynamic|Win32 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Beta|Any CPU.ActiveCfg = Release|Win32 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Beta|x64.ActiveCfg = Release|x64 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Beta|x64.Build.0 = Release|x64 @@ -320,6 +399,12 @@ Global {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Debug|x64.Build.0 = Debug|x64 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Debug|x86.ActiveCfg = Debug|Win32 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Debug|x86.Build.0 = Debug|Win32 + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.MinSizeRel|Any CPU.ActiveCfg = Debug-Dynamic|ARM + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.MinSizeRel|Any CPU.Build.0 = Debug-Dynamic|ARM + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.MinSizeRel|x64.ActiveCfg = Debug-Dynamic|x64 + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.MinSizeRel|x64.Build.0 = Debug-Dynamic|x64 + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.MinSizeRel|x86.ActiveCfg = Debug-Dynamic|Win32 + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.MinSizeRel|x86.Build.0 = Debug-Dynamic|Win32 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Release|Any CPU.ActiveCfg = Release|Win32 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Release|x64.ActiveCfg = Release|x64 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Release|x64.Build.0 = Release|x64 @@ -343,6 +428,12 @@ Global {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.ReleaseLib|x64.Build.0 = Release|x64 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.ReleaseLib|x86.ActiveCfg = Release-Static|Win32 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.ReleaseLib|x86.Build.0 = Release-Static|Win32 + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.RelWithDebInfo|Any CPU.ActiveCfg = Debug-Dynamic|ARM + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.RelWithDebInfo|Any CPU.Build.0 = Debug-Dynamic|ARM + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.RelWithDebInfo|x64.ActiveCfg = Release-Dynamic|x64 + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.RelWithDebInfo|x64.Build.0 = Release-Dynamic|x64 + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.RelWithDebInfo|x86.ActiveCfg = Release-Dynamic|Win32 + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.RelWithDebInfo|x86.Build.0 = Release-Dynamic|Win32 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Beta|Any CPU.ActiveCfg = Release|Win32 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Beta|x64.ActiveCfg = Release|x64 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Beta|x64.Build.0 = Release|x64 @@ -353,6 +444,12 @@ Global {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Debug|x64.Build.0 = Debug|x64 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Debug|x86.ActiveCfg = Debug|Win32 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Debug|x86.Build.0 = Debug|Win32 + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.MinSizeRel|Any CPU.ActiveCfg = Debug-Dynamic|ARM + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.MinSizeRel|Any CPU.Build.0 = Debug-Dynamic|ARM + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.MinSizeRel|x64.ActiveCfg = Debug-Dynamic|x64 + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.MinSizeRel|x64.Build.0 = Debug-Dynamic|x64 + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.MinSizeRel|x86.ActiveCfg = Debug-Dynamic|Win32 + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.MinSizeRel|x86.Build.0 = Debug-Dynamic|Win32 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Release|Any CPU.ActiveCfg = Release|Win32 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Release|x64.ActiveCfg = Release|x64 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Release|x64.Build.0 = Release|x64 @@ -376,6 +473,12 @@ Global {DA0E03ED-53A7-4050-8A85-90541C5509F8}.ReleaseLib|x64.Build.0 = Release|x64 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.ReleaseLib|x86.ActiveCfg = Release-Static|Win32 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.ReleaseLib|x86.Build.0 = Release-Static|Win32 + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.RelWithDebInfo|Any CPU.ActiveCfg = Debug-Dynamic|ARM + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.RelWithDebInfo|Any CPU.Build.0 = Debug-Dynamic|ARM + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.RelWithDebInfo|x64.ActiveCfg = Release-Dynamic|x64 + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.RelWithDebInfo|x64.Build.0 = Release-Dynamic|x64 + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.RelWithDebInfo|x86.ActiveCfg = Release-Dynamic|Win32 + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.RelWithDebInfo|x86.Build.0 = Release-Dynamic|Win32 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Beta|Any CPU.ActiveCfg = Release|Win32 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Beta|x64.ActiveCfg = Release|x64 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Beta|x64.Build.0 = Release|x64 @@ -386,6 +489,12 @@ Global {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Debug|x64.Build.0 = Debug|x64 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Debug|x86.ActiveCfg = Debug|Win32 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Debug|x86.Build.0 = Debug|Win32 + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.MinSizeRel|Any CPU.ActiveCfg = Debug-Dynamic|ARM + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.MinSizeRel|Any CPU.Build.0 = Debug-Dynamic|ARM + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.MinSizeRel|x64.ActiveCfg = Debug-Dynamic|x64 + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.MinSizeRel|x64.Build.0 = Debug-Dynamic|x64 + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.MinSizeRel|x86.ActiveCfg = Debug-Dynamic|Win32 + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.MinSizeRel|x86.Build.0 = Debug-Dynamic|Win32 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Release|Any CPU.ActiveCfg = Release|Win32 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Release|x64.ActiveCfg = Release|x64 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Release|x64.Build.0 = Release|x64 @@ -409,6 +518,12 @@ Global {2BB84911-C1B4-4747-B93D-36AA82CC5031}.ReleaseLib|x64.Build.0 = Release|x64 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.ReleaseLib|x86.ActiveCfg = Release-Static|Win32 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.ReleaseLib|x86.Build.0 = Release-Static|Win32 + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.RelWithDebInfo|Any CPU.ActiveCfg = Debug-Dynamic|ARM + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.RelWithDebInfo|Any CPU.Build.0 = Debug-Dynamic|ARM + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.RelWithDebInfo|x64.ActiveCfg = Release-Dynamic|x64 + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.RelWithDebInfo|x64.Build.0 = Release-Dynamic|x64 + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.RelWithDebInfo|x86.ActiveCfg = Release-Dynamic|Win32 + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.RelWithDebInfo|x86.Build.0 = Release-Dynamic|Win32 {B82CDD25-6903-430E-BD38-D8129A2015C1}.Beta|Any CPU.ActiveCfg = Release|Win32 {B82CDD25-6903-430E-BD38-D8129A2015C1}.Beta|x64.ActiveCfg = Release|x64 {B82CDD25-6903-430E-BD38-D8129A2015C1}.Beta|x64.Build.0 = Release|x64 @@ -419,6 +534,12 @@ Global {B82CDD25-6903-430E-BD38-D8129A2015C1}.Debug|x64.Build.0 = Debug|x64 {B82CDD25-6903-430E-BD38-D8129A2015C1}.Debug|x86.ActiveCfg = Debug|Win32 {B82CDD25-6903-430E-BD38-D8129A2015C1}.Debug|x86.Build.0 = Debug|Win32 + {B82CDD25-6903-430E-BD38-D8129A2015C1}.MinSizeRel|Any CPU.ActiveCfg = Debug-Dynamic|ARM + {B82CDD25-6903-430E-BD38-D8129A2015C1}.MinSizeRel|Any CPU.Build.0 = Debug-Dynamic|ARM + {B82CDD25-6903-430E-BD38-D8129A2015C1}.MinSizeRel|x64.ActiveCfg = Debug-Dynamic|x64 + {B82CDD25-6903-430E-BD38-D8129A2015C1}.MinSizeRel|x64.Build.0 = Debug-Dynamic|x64 + {B82CDD25-6903-430E-BD38-D8129A2015C1}.MinSizeRel|x86.ActiveCfg = Debug-Dynamic|Win32 + {B82CDD25-6903-430E-BD38-D8129A2015C1}.MinSizeRel|x86.Build.0 = Debug-Dynamic|Win32 {B82CDD25-6903-430E-BD38-D8129A2015C1}.Release|Any CPU.ActiveCfg = Release|Win32 {B82CDD25-6903-430E-BD38-D8129A2015C1}.Release|x64.ActiveCfg = Release|x64 {B82CDD25-6903-430E-BD38-D8129A2015C1}.Release|x64.Build.0 = Release|x64 @@ -442,6 +563,12 @@ Global {B82CDD25-6903-430E-BD38-D8129A2015C1}.ReleaseLib|x64.Build.0 = Release|x64 {B82CDD25-6903-430E-BD38-D8129A2015C1}.ReleaseLib|x86.ActiveCfg = Release-Static|Win32 {B82CDD25-6903-430E-BD38-D8129A2015C1}.ReleaseLib|x86.Build.0 = Release-Static|Win32 + {B82CDD25-6903-430E-BD38-D8129A2015C1}.RelWithDebInfo|Any CPU.ActiveCfg = Debug-Dynamic|ARM + {B82CDD25-6903-430E-BD38-D8129A2015C1}.RelWithDebInfo|Any CPU.Build.0 = Debug-Dynamic|ARM + {B82CDD25-6903-430E-BD38-D8129A2015C1}.RelWithDebInfo|x64.ActiveCfg = Release-Dynamic|x64 + {B82CDD25-6903-430E-BD38-D8129A2015C1}.RelWithDebInfo|x64.Build.0 = Release-Dynamic|x64 + {B82CDD25-6903-430E-BD38-D8129A2015C1}.RelWithDebInfo|x86.ActiveCfg = Release-Dynamic|Win32 + {B82CDD25-6903-430E-BD38-D8129A2015C1}.RelWithDebInfo|x86.Build.0 = Release-Dynamic|Win32 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Beta|Any CPU.ActiveCfg = Release|Win32 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Beta|x64.ActiveCfg = Release|x64 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Beta|x64.Build.0 = Release|x64 @@ -452,6 +579,12 @@ Global {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Debug|x64.Build.0 = Debug|x64 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Debug|x86.ActiveCfg = Debug|Win32 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Debug|x86.Build.0 = Debug|Win32 + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.MinSizeRel|Any CPU.ActiveCfg = Debug-Dynamic|ARM + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.MinSizeRel|Any CPU.Build.0 = Debug-Dynamic|ARM + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.MinSizeRel|x64.ActiveCfg = Debug-Dynamic|x64 + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.MinSizeRel|x64.Build.0 = Debug-Dynamic|x64 + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.MinSizeRel|x86.ActiveCfg = Debug-Dynamic|Win32 + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.MinSizeRel|x86.Build.0 = Debug-Dynamic|Win32 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Release|Any CPU.ActiveCfg = Release|Win32 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Release|x64.ActiveCfg = Release|x64 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Release|x64.Build.0 = Release|x64 @@ -475,6 +608,12 @@ Global {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.ReleaseLib|x64.Build.0 = Release|x64 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.ReleaseLib|x86.ActiveCfg = Release-Static|Win32 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.ReleaseLib|x86.Build.0 = Release-Static|Win32 + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.RelWithDebInfo|Any CPU.ActiveCfg = Debug-Dynamic|ARM + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.RelWithDebInfo|Any CPU.Build.0 = Debug-Dynamic|ARM + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.RelWithDebInfo|x64.ActiveCfg = Release-Dynamic|x64 + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.RelWithDebInfo|x64.Build.0 = Release-Dynamic|x64 + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.RelWithDebInfo|x86.ActiveCfg = Release-Dynamic|Win32 + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.RelWithDebInfo|x86.Build.0 = Release-Dynamic|Win32 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Beta|Any CPU.ActiveCfg = Release|Win32 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Beta|x64.ActiveCfg = Release|x64 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Beta|x64.Build.0 = Release|x64 @@ -485,6 +624,12 @@ Global {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Debug|x64.Build.0 = Debug|x64 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Debug|x86.ActiveCfg = Debug|Win32 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Debug|x86.Build.0 = Debug|Win32 + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.MinSizeRel|Any CPU.ActiveCfg = Debug-Dynamic|ARM + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.MinSizeRel|Any CPU.Build.0 = Debug-Dynamic|ARM + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.MinSizeRel|x64.ActiveCfg = Debug-Dynamic|x64 + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.MinSizeRel|x64.Build.0 = Debug-Dynamic|x64 + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.MinSizeRel|x86.ActiveCfg = Debug-Dynamic|Win32 + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.MinSizeRel|x86.Build.0 = Debug-Dynamic|Win32 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Release|Any CPU.ActiveCfg = Release|Win32 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Release|x64.ActiveCfg = Release|x64 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Release|x64.Build.0 = Release|x64 @@ -508,6 +653,12 @@ Global {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.ReleaseLib|x64.Build.0 = Release|x64 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.ReleaseLib|x86.ActiveCfg = Release-Static|Win32 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.ReleaseLib|x86.Build.0 = Release-Static|Win32 + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.RelWithDebInfo|Any CPU.ActiveCfg = Debug-Dynamic|ARM + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.RelWithDebInfo|Any CPU.Build.0 = Debug-Dynamic|ARM + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.RelWithDebInfo|x64.ActiveCfg = Release-Dynamic|x64 + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.RelWithDebInfo|x64.Build.0 = Release-Dynamic|x64 + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.RelWithDebInfo|x86.ActiveCfg = Release-Dynamic|Win32 + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.RelWithDebInfo|x86.Build.0 = Release-Dynamic|Win32 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Beta|Any CPU.ActiveCfg = Release|Win32 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Beta|x64.ActiveCfg = Release|x64 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Beta|x64.Build.0 = Release|x64 @@ -518,6 +669,12 @@ Global {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Debug|x64.Build.0 = Debug|x64 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Debug|x86.ActiveCfg = Debug|Win32 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Debug|x86.Build.0 = Debug|Win32 + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.MinSizeRel|Any CPU.ActiveCfg = Debug-Dynamic|ARM + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.MinSizeRel|Any CPU.Build.0 = Debug-Dynamic|ARM + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.MinSizeRel|x64.ActiveCfg = Debug-Dynamic|x64 + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.MinSizeRel|x64.Build.0 = Debug-Dynamic|x64 + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.MinSizeRel|x86.ActiveCfg = Debug-Dynamic|Win32 + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.MinSizeRel|x86.Build.0 = Debug-Dynamic|Win32 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Release|Any CPU.ActiveCfg = Release|Win32 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Release|x64.ActiveCfg = Release|x64 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Release|x64.Build.0 = Release|x64 @@ -541,79 +698,101 @@ Global {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.ReleaseLib|x64.Build.0 = Release|x64 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.ReleaseLib|x86.ActiveCfg = Release-Static|Win32 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.ReleaseLib|x86.Build.0 = Release-Static|Win32 - {711397CE-E5D5-467D-9457-8716C047E50C}.Beta|Any CPU.ActiveCfg = Release|Win32 - {711397CE-E5D5-467D-9457-8716C047E50C}.Beta|x64.ActiveCfg = Release|x64 - {711397CE-E5D5-467D-9457-8716C047E50C}.Beta|x64.Build.0 = Release|x64 - {711397CE-E5D5-467D-9457-8716C047E50C}.Beta|x86.ActiveCfg = Release|Win32 - {711397CE-E5D5-467D-9457-8716C047E50C}.Beta|x86.Build.0 = Release|Win32 - {711397CE-E5D5-467D-9457-8716C047E50C}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {711397CE-E5D5-467D-9457-8716C047E50C}.Debug|x64.ActiveCfg = Debug|x64 - {711397CE-E5D5-467D-9457-8716C047E50C}.Debug|x64.Build.0 = Debug|x64 - {711397CE-E5D5-467D-9457-8716C047E50C}.Debug|x86.ActiveCfg = Debug|Win32 - {711397CE-E5D5-467D-9457-8716C047E50C}.Debug|x86.Build.0 = Debug|Win32 - {711397CE-E5D5-467D-9457-8716C047E50C}.Release|Any CPU.ActiveCfg = Release|Win32 - {711397CE-E5D5-467D-9457-8716C047E50C}.Release|x64.ActiveCfg = Release|x64 - {711397CE-E5D5-467D-9457-8716C047E50C}.Release|x64.Build.0 = Release|x64 - {711397CE-E5D5-467D-9457-8716C047E50C}.Release|x86.ActiveCfg = Release|Win32 - {711397CE-E5D5-467D-9457-8716C047E50C}.Release|x86.Build.0 = Release|Win32 - {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseCompile|Any CPU.ActiveCfg = Release|x64 - {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseCompile|Any CPU.Build.0 = Release|x64 - {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseCompile|x64.ActiveCfg = Release|x64 - {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseCompile|x64.Build.0 = Release|x64 - {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseCompile|x86.ActiveCfg = Release|Win32 - {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseCompile|x86.Build.0 = Release|Win32 - {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseLib_win32|Any CPU.ActiveCfg = Release|x64 - {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseLib_win32|Any CPU.Build.0 = Release|x64 - {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseLib_win32|x64.ActiveCfg = Release|x64 - {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseLib_win32|x64.Build.0 = Release|x64 - {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseLib_win32|x86.ActiveCfg = Release|Win32 - {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseLib_win32|x86.Build.0 = Release|Win32 - {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseLib|Any CPU.ActiveCfg = Release|x64 - {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseLib|Any CPU.Build.0 = Release|x64 - {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseLib|x64.ActiveCfg = Release|x64 - {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseLib|x64.Build.0 = Release|x64 - {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseLib|x86.ActiveCfg = Release|Win32 - {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseLib|x86.Build.0 = Release|Win32 - {A1BDC12C-5DF6-3E77-9793-AB9AB5C82027}.Beta|Any CPU.ActiveCfg = Release|x64 - {A1BDC12C-5DF6-3E77-9793-AB9AB5C82027}.Beta|Any CPU.Build.0 = Release|x64 - {A1BDC12C-5DF6-3E77-9793-AB9AB5C82027}.Beta|x64.ActiveCfg = Release|x64 - {A1BDC12C-5DF6-3E77-9793-AB9AB5C82027}.Beta|x64.Build.0 = Release|x64 - {A1BDC12C-5DF6-3E77-9793-AB9AB5C82027}.Beta|x86.ActiveCfg = Release|x64 - {A1BDC12C-5DF6-3E77-9793-AB9AB5C82027}.Beta|x86.Build.0 = Release|x64 - {A1BDC12C-5DF6-3E77-9793-AB9AB5C82027}.Debug|Any CPU.ActiveCfg = Debug|x64 - {A1BDC12C-5DF6-3E77-9793-AB9AB5C82027}.Debug|x64.ActiveCfg = Debug|x64 - {A1BDC12C-5DF6-3E77-9793-AB9AB5C82027}.Debug|x64.Build.0 = Debug|x64 - {A1BDC12C-5DF6-3E77-9793-AB9AB5C82027}.Debug|x86.ActiveCfg = Debug|x64 - {A1BDC12C-5DF6-3E77-9793-AB9AB5C82027}.Release|Any CPU.ActiveCfg = Release|x64 - {A1BDC12C-5DF6-3E77-9793-AB9AB5C82027}.Release|x64.ActiveCfg = Release|x64 - {A1BDC12C-5DF6-3E77-9793-AB9AB5C82027}.Release|x64.Build.0 = Release|x64 - {A1BDC12C-5DF6-3E77-9793-AB9AB5C82027}.Release|x86.ActiveCfg = Release|x64 - {A1BDC12C-5DF6-3E77-9793-AB9AB5C82027}.ReleaseCompile|Any CPU.ActiveCfg = Release|x64 - {A1BDC12C-5DF6-3E77-9793-AB9AB5C82027}.ReleaseCompile|Any CPU.Build.0 = Release|x64 - {A1BDC12C-5DF6-3E77-9793-AB9AB5C82027}.ReleaseCompile|x64.ActiveCfg = Release|x64 - {A1BDC12C-5DF6-3E77-9793-AB9AB5C82027}.ReleaseCompile|x64.Build.0 = Release|x64 - {A1BDC12C-5DF6-3E77-9793-AB9AB5C82027}.ReleaseCompile|x86.ActiveCfg = Release|x64 - {A1BDC12C-5DF6-3E77-9793-AB9AB5C82027}.ReleaseCompile|x86.Build.0 = Release|x64 - {A1BDC12C-5DF6-3E77-9793-AB9AB5C82027}.ReleaseLib_win32|Any CPU.ActiveCfg = Release|x64 - {A1BDC12C-5DF6-3E77-9793-AB9AB5C82027}.ReleaseLib_win32|Any CPU.Build.0 = Release|x64 - {A1BDC12C-5DF6-3E77-9793-AB9AB5C82027}.ReleaseLib_win32|x64.ActiveCfg = Release|x64 - {A1BDC12C-5DF6-3E77-9793-AB9AB5C82027}.ReleaseLib_win32|x64.Build.0 = Release|x64 - {A1BDC12C-5DF6-3E77-9793-AB9AB5C82027}.ReleaseLib_win32|x86.ActiveCfg = Release|x64 - {A1BDC12C-5DF6-3E77-9793-AB9AB5C82027}.ReleaseLib_win32|x86.Build.0 = Release|x64 - {A1BDC12C-5DF6-3E77-9793-AB9AB5C82027}.ReleaseLib|Any CPU.ActiveCfg = Release|x64 - {A1BDC12C-5DF6-3E77-9793-AB9AB5C82027}.ReleaseLib|Any CPU.Build.0 = Release|x64 - {A1BDC12C-5DF6-3E77-9793-AB9AB5C82027}.ReleaseLib|x64.ActiveCfg = Release|x64 - {A1BDC12C-5DF6-3E77-9793-AB9AB5C82027}.ReleaseLib|x64.Build.0 = Release|x64 - {A1BDC12C-5DF6-3E77-9793-AB9AB5C82027}.ReleaseLib|x86.ActiveCfg = Release|x64 - {A1BDC12C-5DF6-3E77-9793-AB9AB5C82027}.ReleaseLib|x86.Build.0 = Release|x64 + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.RelWithDebInfo|Any CPU.ActiveCfg = Debug-Dynamic|ARM + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.RelWithDebInfo|Any CPU.Build.0 = Debug-Dynamic|ARM + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.RelWithDebInfo|x64.ActiveCfg = Release-Dynamic|x64 + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.RelWithDebInfo|x64.Build.0 = Release-Dynamic|x64 + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.RelWithDebInfo|x86.ActiveCfg = Release-Dynamic|Win32 + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.RelWithDebInfo|x86.Build.0 = Release-Dynamic|Win32 + {E23F393D-035D-3A88-8335-96339271FFC2}.Beta|Any CPU.ActiveCfg = Release|Win32 + {E23F393D-035D-3A88-8335-96339271FFC2}.Beta|x64.ActiveCfg = Release|x64 + {E23F393D-035D-3A88-8335-96339271FFC2}.Beta|x64.Build.0 = Release|x64 + {E23F393D-035D-3A88-8335-96339271FFC2}.Beta|x86.ActiveCfg = Release|Win32 + {E23F393D-035D-3A88-8335-96339271FFC2}.Beta|x86.Build.0 = Release|Win32 + {E23F393D-035D-3A88-8335-96339271FFC2}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {E23F393D-035D-3A88-8335-96339271FFC2}.Debug|x64.ActiveCfg = Debug|x64 + {E23F393D-035D-3A88-8335-96339271FFC2}.Debug|x64.Build.0 = Debug|x64 + {E23F393D-035D-3A88-8335-96339271FFC2}.Debug|x86.ActiveCfg = Debug|Win32 + {E23F393D-035D-3A88-8335-96339271FFC2}.Debug|x86.Build.0 = Debug|Win32 + {E23F393D-035D-3A88-8335-96339271FFC2}.MinSizeRel|Any CPU.ActiveCfg = MinSizeRel|x64 + {E23F393D-035D-3A88-8335-96339271FFC2}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64 + {E23F393D-035D-3A88-8335-96339271FFC2}.MinSizeRel|x64.Build.0 = MinSizeRel|x64 + {E23F393D-035D-3A88-8335-96339271FFC2}.MinSizeRel|x86.ActiveCfg = MinSizeRel|x64 + {E23F393D-035D-3A88-8335-96339271FFC2}.Release|Any CPU.ActiveCfg = Release|Win32 + {E23F393D-035D-3A88-8335-96339271FFC2}.Release|x64.ActiveCfg = Release|x64 + {E23F393D-035D-3A88-8335-96339271FFC2}.Release|x64.Build.0 = Release|x64 + {E23F393D-035D-3A88-8335-96339271FFC2}.Release|x86.ActiveCfg = Release|Win32 + {E23F393D-035D-3A88-8335-96339271FFC2}.Release|x86.Build.0 = Release|Win32 + {E23F393D-035D-3A88-8335-96339271FFC2}.ReleaseCompile|Any CPU.ActiveCfg = Release|x64 + {E23F393D-035D-3A88-8335-96339271FFC2}.ReleaseCompile|Any CPU.Build.0 = Release|x64 + {E23F393D-035D-3A88-8335-96339271FFC2}.ReleaseCompile|x64.ActiveCfg = Release|x64 + {E23F393D-035D-3A88-8335-96339271FFC2}.ReleaseCompile|x64.Build.0 = Release|x64 + {E23F393D-035D-3A88-8335-96339271FFC2}.ReleaseCompile|x86.ActiveCfg = Release|Win32 + {E23F393D-035D-3A88-8335-96339271FFC2}.ReleaseCompile|x86.Build.0 = Release|Win32 + {E23F393D-035D-3A88-8335-96339271FFC2}.ReleaseLib_win32|Any CPU.ActiveCfg = Release|x64 + {E23F393D-035D-3A88-8335-96339271FFC2}.ReleaseLib_win32|Any CPU.Build.0 = Release|x64 + {E23F393D-035D-3A88-8335-96339271FFC2}.ReleaseLib_win32|x64.ActiveCfg = Release|x64 + {E23F393D-035D-3A88-8335-96339271FFC2}.ReleaseLib_win32|x64.Build.0 = Release|x64 + {E23F393D-035D-3A88-8335-96339271FFC2}.ReleaseLib_win32|x86.ActiveCfg = Release|Win32 + {E23F393D-035D-3A88-8335-96339271FFC2}.ReleaseLib_win32|x86.Build.0 = Release|Win32 + {E23F393D-035D-3A88-8335-96339271FFC2}.ReleaseLib|Any CPU.ActiveCfg = Release|x64 + {E23F393D-035D-3A88-8335-96339271FFC2}.ReleaseLib|Any CPU.Build.0 = Release|x64 + {E23F393D-035D-3A88-8335-96339271FFC2}.ReleaseLib|x64.ActiveCfg = Release|x64 + {E23F393D-035D-3A88-8335-96339271FFC2}.ReleaseLib|x64.Build.0 = Release|x64 + {E23F393D-035D-3A88-8335-96339271FFC2}.ReleaseLib|x86.ActiveCfg = Release|Win32 + {E23F393D-035D-3A88-8335-96339271FFC2}.ReleaseLib|x86.Build.0 = Release|Win32 + {E23F393D-035D-3A88-8335-96339271FFC2}.RelWithDebInfo|Any CPU.ActiveCfg = RelWithDebInfo|x64 + {E23F393D-035D-3A88-8335-96339271FFC2}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 + {E23F393D-035D-3A88-8335-96339271FFC2}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 + {E23F393D-035D-3A88-8335-96339271FFC2}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.Beta|Any CPU.ActiveCfg = RelWithDebInfo|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.Beta|Any CPU.Build.0 = RelWithDebInfo|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.Beta|x64.ActiveCfg = RelWithDebInfo|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.Beta|x64.Build.0 = RelWithDebInfo|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.Beta|x86.ActiveCfg = RelWithDebInfo|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.Beta|x86.Build.0 = RelWithDebInfo|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.Debug|Any CPU.ActiveCfg = Debug|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.Debug|x64.ActiveCfg = Debug|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.Debug|x64.Build.0 = Debug|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.Debug|x86.ActiveCfg = Debug|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.MinSizeRel|Any CPU.ActiveCfg = MinSizeRel|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.MinSizeRel|x64.Build.0 = MinSizeRel|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.MinSizeRel|x86.ActiveCfg = MinSizeRel|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.Release|Any CPU.ActiveCfg = Release|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.Release|x64.ActiveCfg = Release|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.Release|x64.Build.0 = Release|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.Release|x86.ActiveCfg = Release|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.ReleaseCompile|Any CPU.ActiveCfg = RelWithDebInfo|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.ReleaseCompile|Any CPU.Build.0 = RelWithDebInfo|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.ReleaseCompile|x64.ActiveCfg = Release|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.ReleaseCompile|x64.Build.0 = Release|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.ReleaseCompile|x86.ActiveCfg = RelWithDebInfo|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.ReleaseCompile|x86.Build.0 = RelWithDebInfo|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.ReleaseLib_win32|Any CPU.ActiveCfg = RelWithDebInfo|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.ReleaseLib_win32|Any CPU.Build.0 = RelWithDebInfo|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.ReleaseLib_win32|x64.ActiveCfg = Release|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.ReleaseLib_win32|x64.Build.0 = Release|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.ReleaseLib_win32|x86.ActiveCfg = RelWithDebInfo|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.ReleaseLib_win32|x86.Build.0 = RelWithDebInfo|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.ReleaseLib|Any CPU.ActiveCfg = RelWithDebInfo|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.ReleaseLib|Any CPU.Build.0 = RelWithDebInfo|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.ReleaseLib|x64.ActiveCfg = Release|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.ReleaseLib|x64.Build.0 = Release|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.ReleaseLib|x86.ActiveCfg = RelWithDebInfo|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.ReleaseLib|x86.Build.0 = RelWithDebInfo|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.RelWithDebInfo|Any CPU.ActiveCfg = RelWithDebInfo|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {1CA4822C-F599-3879-A78F-332D823E4871} = {B6752729-7398-46FA-9CF0-DC854C6AB8CA} - {774F1C61-6659-36E6-9519-17A753890576} = {31F92F98-3580-445D-A3DA-D081B427A562} - {2CFF20AA-9341-3564-A044-C38E70D5372A} = {31F92F98-3580-445D-A3DA-D081B427A562} + {8819D074-8F1F-3226-A611-F2E0BD9B6DBE} = {B6752729-7398-46FA-9CF0-DC854C6AB8CA} + {B39971A8-F247-31DE-8029-A90CE9549533} = {31F92F98-3580-445D-A3DA-D081B427A562} + {4295A40A-1D7D-3A99-AB29-0C144CAB27F1} = {31F92F98-3580-445D-A3DA-D081B427A562} {DBBFBC55-1C20-4D21-AE3B-6E8B14C4FE48} = {1ECB5BD6-B3A0-4135-BA3F-48FC367B61C9} {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4} = {14A77BA7-0E23-4D8F-A74F-5D5D5583035D} {14A77BA7-0E23-4D8F-A74F-5D5D5583035D} = {B4FD804C-ABD9-4F54-858B-911F0119580C} @@ -627,8 +806,8 @@ Global {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0} = {14A77BA7-0E23-4D8F-A74F-5D5D5583035D} {B8719FD5-E8A6-4A36-943C-891D07F5DD21} = {14A77BA7-0E23-4D8F-A74F-5D5D5583035D} {B4FD804C-ABD9-4F54-858B-911F0119580C} = {B6752729-7398-46FA-9CF0-DC854C6AB8CA} - {711397CE-E5D5-467D-9457-8716C047E50C} = {B4FD804C-ABD9-4F54-858B-911F0119580C} - {A1BDC12C-5DF6-3E77-9793-AB9AB5C82027} = {1ECB5BD6-B3A0-4135-BA3F-48FC367B61C9} + {E23F393D-035D-3A88-8335-96339271FFC2} = {B4FD804C-ABD9-4F54-858B-911F0119580C} + {EC128C5F-DDC7-3828-98C8-B9CEAD61B131} = {1ECB5BD6-B3A0-4135-BA3F-48FC367B61C9} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {5C2901E8-26FE-444A-A80E-02AF8147CD34} diff --git a/make-client.py b/make-client.py index d406351d5..cebebfcc4 100644 --- a/make-client.py +++ b/make-client.py @@ -19,6 +19,8 @@ vs_where_path = os.path.join( ) host_is_64bit = (False, True)[platform.machine().endswith('64')] +this_dir = os.path.dirname(os.path.realpath(__file__)) +build_dir = this_dir + '\\build' class QtVerison(Enum): Major = 0 @@ -50,6 +52,11 @@ def getLatestVSVersion(): else: return +def getCMakeGenerator(vs_version): + if vs_version == '15': + return 'Visual Studio 15 2017 Win64' + else: + return 'Visual Studio ' + vs_version + ' 2019' def findVSLatestDir(): args = [ @@ -66,7 +73,6 @@ def findVSLatestDir(): else: return - def getQtVersionNumber(qt_version, version_type): version_list = qt_version.split('.') return version_list[version_type.value] @@ -77,6 +83,18 @@ def findMSBuild(): if filename in files: return os.path.join(root, filename) +def getMSBuildArgs(arch, config_str, configuration_type, toolset): + msbuild_args = [ + '/nologo', + '/verbosity:minimal', + '/maxcpucount:' + str(multiprocessing.cpu_count()), + '/p:Platform=' + arch, + '/p:Configuration=' + config_str, + '/p:ConfigurationType=' + configuration_type, + '/p:useenv=true'] + if (toolset != ''): + msbuild_args.append('/p:PlatformToolset=' + toolset) + return msbuild_args def getVSEnv(arch='x64', platform='', version=''): env_cmd = 'set path=%path:"=% && ' + \ @@ -137,8 +155,19 @@ def deps(arch, toolset, qtver): sys.exit(1) print('Building qrcodelib') - build(arch, '', '', 'Release-Lib', - '\\qrencode-win32\\qrencode-win32\\vc8\\qrcodelib\\qrcodelib.vcxproj', qtver, False) + + vs_env_vars = {} + vs_env_vars.update(getVSEnv()) + + msbuild = findMSBuild() + if not os.path.isfile(msbuild): + raise IOError('msbuild.exe not found. path=' + msbuild) + msbuild_args = getMSBuildArgs(arch, 'Release-Lib', 'StaticLibrary', toolset) + + this_dir = os.path.dirname(os.path.realpath(__file__)) + proj_path = this_dir + '\\qrencode-win32\\qrencode-win32\\vc8\\qrcodelib\\qrcodelib.vcxproj' + + build_project(msbuild, msbuild_args, proj_path, vs_env_vars) def build(arch, toolset, sdk_version, config_str, project_path_under_current_path, qtver, force_option=True): @@ -146,30 +175,56 @@ def build(arch, toolset, sdk_version, config_str, project_path_under_current_pat configuration_type = 'StaticLibrary' - qt_minor_version = getQtVersionNumber(qtver, QtVerison.Minor) - qtFolderDir = 'msvc2017_64' if int(qt_minor_version) <= 14 else 'msvc2019_64' - vs_env_vars = {} vs_env_vars.update(getVSEnv()) - qmake_cmd = "C:\\Qt\\" + qtver + "\\" + qtFolderDir + "\\bin\\qmake.exe" + qt_dir = 'C:\\Qt\\' + qtver + cmake_gen = getCMakeGenerator(getLatestVSVersion()) + qt_minor_version = getQtVersionNumber(qtver, QtVerison.Minor) + msvc_folder = '\\msvc2017_64' if int(qt_minor_version) <= 14 else '\\msvc2019_64' + + qt_cmake_dir = qt_dir + msvc_folder + '\\lib\\cmake\\' + cmake_prefix_path = qt_dir + msvc_folder + + cmake_options = [ + '-DCMAKE_PREFIX_PATH=' + cmake_prefix_path, + '-DQt5_DIR=' + qt_cmake_dir + 'Qt5', + '-DQt5Core_DIR=' + qt_cmake_dir + 'Qt5Core', + '-DQt5Sql_DIR=' + qt_cmake_dir + 'Qt5Sql', + '-DQt5LinguistTools_DIR=' + qt_cmake_dir + 'Qt5LinguistTools', + '-DQt5Concurrent_DIR=' + qt_cmake_dir + 'Qt5Concurrent', + '-DQt5Gui_DIR=' + qt_cmake_dir + 'Qt5Gui', + '-DCMAKE_SYSTEM_VERSION=' + sdk_version + ] + if not os.path.exists(build_dir): + os.makedirs(build_dir) + os.chdir(build_dir) + if (config_str == 'Release'): - print('Generating project using qmake ' + config_str + '|' + arch) - if(execute_cmd(qmake_cmd + " -tp vc jami-qt.pro -o jami-qt.vcxproj", False, vs_env_vars)): - print("Qmake vcxproj file generate error") + print('Generating project using cmake ' + config_str + '|' + arch) + cmd = ['cmake', '..', '-G', cmake_gen] + cmd.extend(cmake_options) + if(execute_cmd(cmd, False, vs_env_vars)): + print("Cmake vcxproj file generate error") sys.exit(1) configuration_type = 'Application' elif (config_str == 'Beta'): - print('Generating project using qmake ' + config_str + '|' + arch) - if(execute_cmd(qmake_cmd + " -tp vc jami-qt.pro -o jami-qt.vcxproj CONFIG+=Beta", False, vs_env_vars)): - print("Beta: Qmake vcxproj file generate error") + print('Generating project using cmake ' + config_str + '|' + arch) + cmake_options.append('-DBETA=1') + cmd = ['cmake', '..', '-G', cmake_gen] + cmd.extend(cmake_options) + if(execute_cmd(cmd, False, vs_env_vars)): + print("Beta: Cmake vcxproj file generate error") sys.exit(1) config_str = 'Release' configuration_type = 'Application' elif (config_str == 'ReleaseCompile'): print('Generating project using qmake ' + config_str + '|' + arch) - if(execute_cmd(qmake_cmd + " -tp vc jami-qt.pro -o jami-qt.vcxproj CONFIG+=ReleaseCompile", False, vs_env_vars)): - print("ReleaseCompile: Qmake vcxproj file generate error") + cmake_options.append('-DReleaseCompile=1') + cmd = ['cmake', '..', '-G', cmake_gen] + cmd.extend(cmake_options) + if(execute_cmd(cmd, False, vs_env_vars)): + print("ReleaseCompile: Cmake vcxproj file generate error") sys.exit(1) config_str = 'Release' @@ -177,22 +232,13 @@ def build(arch, toolset, sdk_version, config_str, project_path_under_current_pat # but will be outputted into x64/Beta folder (for Beta Only) print('Building projects in ' + config_str + '|' + arch) - this_dir = os.path.dirname(os.path.realpath(__file__)) - qt_client_proj_path = this_dir + project_path_under_current_path + qt_client_proj_path = build_dir + project_path_under_current_path msbuild = findMSBuild() if not os.path.isfile(msbuild): raise IOError('msbuild.exe not found. path=' + msbuild) - msbuild_args = [ - '/nologo', - '/verbosity:minimal', - '/maxcpucount:' + str(multiprocessing.cpu_count()), - '/p:Platform=' + arch, - '/p:Configuration=' + config_str, - '/p:ConfigurationType=' + configuration_type, - '/p:useenv=true'] - if (toolset != ''): - msbuild_args.append('/p:PlatformToolset=' + toolset) + msbuild_args = getMSBuildArgs(arch, config_str, configuration_type, toolset) + if (force_option): # force toolset replace_vs_prop(qt_client_proj_path, diff --git a/src/qrimageprovider.h b/src/qrimageprovider.h index d148873d9..2bc39de9a 100644 --- a/src/qrimageprovider.h +++ b/src/qrimageprovider.h @@ -43,7 +43,7 @@ public: */ QPair<QrType, QString> getIndexFromID(const QString& id) { - auto list = id.split('_', QString::SplitBehavior::SkipEmptyParts); + auto list = id.split('_', Qt::SkipEmptyParts); if (list.size() < 2) return {QrType::Account, ""}; if (list.contains("account") && list.size() > 1) { diff --git a/src/smartlistmodel.cpp b/src/smartlistmodel.cpp index e1bc388bc..6269f43dd 100644 --- a/src/smartlistmodel.cpp +++ b/src/smartlistmodel.cpp @@ -298,7 +298,7 @@ SmartListModel::getConversationItemData(const conversation::Info& item, case Role::LastInteractionDate: { if (!item.interactions.empty()) { auto& date = item.interactions.at(item.lastMessageUid).timestamp; - return QVariant(QString::fromStdString(Utils::formatTimeString(date))); + return QVariant(Utils::formatTimeString(date)); } return QVariant(""); } diff --git a/src/tintedbuttonimageprovider.h b/src/tintedbuttonimageprovider.h index d708c295c..073b7b081 100644 --- a/src/tintedbuttonimageprovider.h +++ b/src/tintedbuttonimageprovider.h @@ -40,7 +40,7 @@ public: QColor tintedColor; - auto list = id.split('+', QString::SkipEmptyParts); + auto list = id.split('+', Qt::SkipEmptyParts); if (list.size() == 2) { QPixmap pixmapToSend(":/images/icons/" + list[0]); diff --git a/src/utils.cpp b/src/utils.cpp index 27d253158..7c4c7d4ec 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -36,7 +36,7 @@ #include <QPainter> #include <QPropertyAnimation> #include <QScreen> -#include <QStackedWidget> +#include <QDateTime> #include <QSvgRenderer> #include <QTranslator> #include <QtConcurrent/QtConcurrent> @@ -496,21 +496,16 @@ Utils::profileType(const lrc::api::conversation::Info& conv, } } -// TODO: use Qt for this -std::string -Utils::formatTimeString(const std::time_t& timestamp) +QString +Utils::formatTimeString(const std::time_t& timeStamp) { - std::time_t now = std::time(nullptr); - char interactionDay[64]; - char nowDay[64]; - std::strftime(interactionDay, sizeof(interactionDay), "%D", std::localtime(×tamp)); - std::strftime(nowDay, sizeof(nowDay), "%D", std::localtime(&now)); - if (std::string(interactionDay) == std::string(nowDay)) { - char interactionTime[64]; - std::strftime(interactionTime, sizeof(interactionTime), "%R", std::localtime(×tamp)); - return interactionTime; + auto currentTimeStamp = QDateTime::fromSecsSinceEpoch(timeStamp); + auto now = QDateTime::currentDateTime(); + auto timeStampDMY = currentTimeStamp.toString("dd/MM/yyyy"); + if (timeStampDMY == now.toString("dd/MM/yyyy")) { + return currentTimeStamp.toString("hh:mm"); } else { - return interactionDay; + return timeStampDMY; } } diff --git a/src/utils.h b/src/utils.h index d0340a4fb..99a9d54d0 100644 --- a/src/utils.h +++ b/src/utils.h @@ -74,7 +74,7 @@ void removeOldVersions(); // LRC helpers lrc::api::profile::Type profileType(const lrc::api::conversation::Info& conv, const lrc::api::ConversationModel& model); -std::string formatTimeString(const std::time_t& timestamp); +QString formatTimeString(const std::time_t& timeStamp); bool isInteractionGenerated(const lrc::api::interaction::Type& interaction); bool isContactValid(const QString& contactUid, const lrc::api::ConversationModel& model); bool getReplyMessageBox(QWidget* widget, const QString& title, const QString& text); -- GitLab