cmake_minimum_required(VERSION 3.3 FATAL_ERROR)

project(iMSTKUnityWrapper)

file(GLOB FILES src/*.cpp src/*.h)

# Edge case to set the install prefix defaulted
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
	get_filename_component(PARENT_DIR ${CMAKE_SOURCE_DIR} DIRECTORY)
	set(CMAKE_INSTALL_PREFIX "${PARENT_DIR}/DemoProject" CACHE PATH "Install location" FORCE)
	mark_as_advanced(CLEAR CMAKE_INSTALL_PREFIX)
endif()

set(CMAKE_DEBUG_POSTFIX d)

# Give config location (config is in imstks innerbuild directory)
find_package(iMSTK REQUIRED)

add_library(iMSTKUnityWrapper SHARED ${FILES})

target_link_libraries(iMSTKUnityWrapper PUBLIC
	imstk::Common
	imstk::Geometry
	imstk::DataStructures
	imstk::Devices
	imstk::Materials
	imstk::Rendering
	imstk::Solvers
	imstk::DynamicalModels
	imstk::CollisionDetection
	imstk::CollisionHandling
	imstk::SceneEntities
	imstk::Scene
	imstk::SimulationManager
	imstk::Constraints
	imstk::Animation
	imstk::apiUtilities)

# Create directory if it doesn't exist
install(DIRECTORY DESTINATION "${CMAKE_INSTALL_PREFIX}/Assets")
# Install our libraries
install(TARGETS iMSTKUnityWrapper DESTINATION "${CMAKE_INSTALL_PREFIX}/Assets/Plugins/")

if(WIN32)
	# Enable parallel build for msvc
	if(MSVC)
		add_definitions(/MP)
	endif()

	# Also install iMSTKs libraries
	install(DIRECTORY "${iMSTK_ROOT}/bin/" DESTINATION "${CMAKE_INSTALL_PREFIX}/Assets/Plugins/" FILES_MATCHING PATTERN "*.dll")
endif()