#----------------------------------------------------------------------------------#
#//////////////////////////////////////////////////////////////////////////////////#
#----------------------------------------------------------------------------------#
#
#  Copyright (C) 2018, StepToSky
#  All rights reserved.
#
#  Redistribution and use in source and binary forms, with or without
#  modification, are permitted provided that the following conditions are met:
#
#  1.Redistributions of source code must retain the above copyright notice, this
#    list of conditions and the following disclaimer.
#  2.Redistributions in binary form must reproduce the above copyright notice,
#    this list of conditions and the following disclaimer in the documentation
#    and / or other materials provided with the distribution.
#  3.Neither the name of StepToSky nor the names of its
#    contributors may be used to endorse or promote products derived from
#    this software without specific prior written permission.
#
#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
#  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
#  DISCLAIMED.IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
#  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
#  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
#  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
#  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
#  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
#  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
#  Contacts: www.steptosky.com
#
#----------------------------------------------------------------------------------#
#//////////////////////////////////////////////////////////////////////////////////#
#----------------------------------------------------------------------------------#
#
# Replaces QT debug libraries to the release ones in the VS project files.
# The problem is that when we are developing under 3Ds Max 
#   usually we don't have 3Ds Max debug build but the debug
#   project generated by the cmake has links to debug QT libraries
#   and when we try to run 3Ds Max with our plug-in in debug mode
#   we get 'error 126' because our plug-in can't find QT debug libraries
#   as the 3Ds Max doesn't have them.
#
# So this script uses dirty hack. I know this is awful solution but 
#   I can't find a better one. Let me know if you know one.
#
# This script takes path to the Visual Studio project and
#   replaces libraries name there. Something like:
#       Qt5Widgetsd -> Qt5Widgets
#
# Using:
#   Define binary dir BINARY_DIR
#   Run: call cmake -DBINARY_DIR="%cd%" -P ../cmake/StsFixQtLibrariesType.cmake
#
#----------------------------------------------------------------------------------#
#//////////////////////////////////////////////////////////////////////////////////#
#----------------------------------------------------------------------------------#

function(fix_qt_libraries_type vs_project)
    set(vs_project ${BINARY_DIR}/${vs_project})
    if (EXISTS ${vs_project})
        FILE(READ ${vs_project} FILE_DATA)
            # Add here new replaces if you have added new QT libs into the project.
            STRING(REPLACE "Qt5Widgetsd" "Qt5Widgets" FILE_DATA "${FILE_DATA}")
            STRING(REPLACE "Qt5Cored" "Qt5Core" FILE_DATA "${FILE_DATA}")
            STRING(REPLACE "Qt5Guid" "Qt5Gui" FILE_DATA "${FILE_DATA}")
        FILE(WRITE ${vs_project} "${FILE_DATA}")
    else()
        message(STATUS "[FIX-QT-LIBS] File [${vs_project}] doesn't exist")
    endif()
endfunction(fix_qt_libraries_type)

#----------------------------------------------------------------------------------#
#//////////////////////////////////////////////////////////////////////////////////#
#----------------------------------------------------------------------------------#

# add solutions where QT libraries must be fixed.
fix_qt_libraries_type("3DsMax-2018.vcxproj")
fix_qt_libraries_type("3DsMax-2019.vcxproj")

#----------------------------------------------------------------------------------#
#//////////////////////////////////////////////////////////////////////////////////#
#----------------------------------------------------------------------------------#