project(linker)

add_subdirectory(lib)

add_library(${PROJECT_NAME} SHARED
	"linker_dll.cpp"
)

target_link_libraries(${PROJECT_NAME}
	linker_lib
)

if (WIN32)
	target_compile_definitions(${PROJECT_NAME}
		PRIVATE
			_CRT_SECURE_NO_WARNINGS
			# windows.h
			WIN32_LEAN_AND_MEAN
			NOGPICAPMASKS
			NOVIRTUALKEYCODES
			#NOWINMESSAGES
			NOWINSTYLES
			NOSYSMETRICS
			NOMENUS
			NOICONS
			NOKEYSTATES
			NOSYSCOMMANDS
			NORASTEROPS
			NOSHOWWINDOW
			NOATOM
			NOCLIPBOARD
			NOCOLOR
			NOCTLMGR
			NODRAWTEXT
			#NOGDI
			NOKERNEL
			#NOUSER
			#NONLS
			NOMB
			NOMEMMGR
			NOMETAFILE
			NOMINMAX
			#NOMSG
			NOOPENFILE
			NOSCROLL
			NOSERVICE
			NOSOUND
			#NOTEXTMETRIC
			NOWH
			NOWINOFFSETS
			NOCOMM
			NOKANJI
			NOHELP
			NOPROFILER
			NODEFERWINDOWPOS
			NOMCX
			NOIME
			NOMDI
			NOINOUT
	)
endif()

install(TARGETS ${PROJECT_NAME}
	DESTINATION lib
	RUNTIME DESTINATION bin
	LIBRARY DESTINATION lib
	OBJECTS DESTINATION lib
	RESOURCE DESTINATION lib
	PUBLIC_HEADER DESTINATION include
	PRIVATE_HEADER DESTINATION source
)
if(MSVC)
	install(
		FILES $<TARGET_PDB_FILE:${PROJECT_NAME}>
		DESTINATION bin
		OPTIONAL
	)
endif()
