# Open Asset Import Library (assimp)
# ----------------------------------------------------------------------
#
# Copyright (c) 2006-2022, assimp team


# All rights reserved.
#
# Redistribution and use of this software in source and binary forms,
# with or without modification, are permitted provided that the
# following conditions are met:
#
# * Redistributions of source code must retain the above
#   copyright notice, this list of conditions and the
#   following disclaimer.
#
# * 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.
#
# * Neither the name of the assimp team, nor the names of its
#   contributors may be used to endorse or promote products
#   derived from this software without specific prior
#   written permission of the assimp team.
#
# 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.
#
#----------------------------------------------------------------------
cmake_minimum_required( VERSION 3.10 )

INCLUDE_DIRECTORIES (
  ${Assimp_SOURCE_DIR}/include
  ${Assimp_SOURCE_DIR}/code
  ${DirectX_INCLUDE_DIR}
)

# Make sure the linker can find the Assimp library once it is built.
LINK_DIRECTORIES (${Assimp_BINARY_DIR} ${AssetImporter_BINARY_DIR}/lib)

ADD_EXECUTABLE(  assimp_viewer WIN32
  AnimEvaluator.cpp
  Background.cpp
  Display.cpp
  HelpDialog.cpp
  Input.cpp
  LogDisplay.cpp
  LogWindow.cpp
  Material.cpp
  MeshRenderer.cpp
  MessageProc.cpp
  Normals.cpp
  SceneAnimator.cpp
  Shaders.cpp
  assimp_view.h
  AnimEvaluator.h
  SceneAnimator.h
  MaterialManager.h
  AssetHelper.h
  assimp_view.cpp
  stdafx.cpp
  assimp_view.rc
  banner.bmp
  banner_pure.bmp
  base_anim.bmp
  base_display.bmp
  base_inter.bmp
  base_rendering.bmp
  base_stats.bmp
  fx.bmp
  n.bmp
  root.bmp
  tx.bmp
  txi.bmp
)

TARGET_USE_COMMON_OUTPUT_DIRECTORY(assimp_viewer)

SET_PROPERTY(TARGET assimp_viewer PROPERTY DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX})

IF ( MSVC )
  ADD_DEFINITIONS( -D_SCL_SECURE_NO_WARNINGS )
  ADD_DEFINITIONS( -D_CRT_SECURE_NO_WARNINGS )
  # assimp_viewer is ANSI (MBCS) throughout
  REMOVE_DEFINITIONS( -DUNICODE -D_UNICODE )
ENDIF ()

IF (ASSIMP_WARNINGS_AS_ERRORS)
  IF (MSVC)
    TARGET_COMPILE_OPTIONS(assimp_viewer PRIVATE /W4 /WX)
  ELSE()
    TARGET_COMPILE_OPTIONS(assimp_viewer PRIVATE -Wall -Werror)
  ENDIF()
ENDIF()

# Link the executable to the assimp + dx libs.
TARGET_LINK_LIBRARIES ( assimp_viewer assimp ${DirectX_LIBRARY} ${DirectX_D3DX9_LIBRARY} comctl32 winmm )

INSTALL( TARGETS assimp_viewer
  DESTINATION "${ASSIMP_BIN_INSTALL_DIR}" COMPONENT assimp-dev
)
