	file(GLOB SRC *.cpp *.h)
	file(GLOB_RECURSE SWIFTEN_SRC ../include/Swiften/*.cpp)

	# Build without openssl on msvc
	if(NOT MSVC)
		if(APPLE)
			string(REGEX REPLACE "[^;]+;?/Schannel/[^;]+;?" "" SWIFTEN_SRC "${SWIFTEN_SRC}")
			string(REGEX REPLACE "[^;]+;?/OpenSSL/[^;]+;?" "" SWIFTEN_SRC "${SWIFTEN_SRC}")
		else()
			string(REGEX REPLACE "[^;]+;?/Schannel/[^;]+;?" "" SWIFTEN_SRC "${SWIFTEN_SRC}")
			string(REGEX REPLACE "[^;]+;?/SecureTransport/[^;]+;?" "" SWIFTEN_SRC "${SWIFTEN_SRC}")
		endif()
	else()
		string(REGEX REPLACE "[^;]+;?/OpenSSL/[^;]+;?" "" SWIFTEN_SRC "${SWIFTEN_SRC}")
		string(REGEX REPLACE "[^;]+;?/SecureTransport/[^;]+;?" "" SWIFTEN_SRC "${SWIFTEN_SRC}")
	endif()

	file(GLOB HEADERS ../include/transport/*.h)
	include_directories(../spectrum/src/frontends/xmpp/)

	if(NOT WIN32)
		include_directories(${POPT_INCLUDE_DIR})
	endif()

	#source_group(headers FILES ${HEADERS})

	if(PROTOBUF_FOUND)
		if(NOT WIN32)
			add_library(transport SHARED ${HEADERS} ${SRC} ${SWIFTEN_SRC})
		else()
			add_library(transport STATIC ${HEADERS} ${SRC} ${SWIFTEN_SRC})
		endif()
		add_dependencies(transport pb)
	else(PROTOBUF_FOUND)
		add_library(transport SHARED ${HEADERS} ${SRC} ${SWIFTEN_SRC})
	endif(PROTOBUF_FOUND)

	# if(CMAKE_COMPILER_IS_GNUCXX)
		if(NOT WIN32)
			add_definitions(-fPIC)
		endif()
	# endif()

	find_package(CURL)

	target_link_libraries(transport transport-protocol ${CURL_LIBRARIES} ${SQLITE3_LIBRARIES} ${MYSQL_LIBRARIES} ${SWIFTEN_LIBRARY} ${LOG4CXX_LIBRARIES} ${POPT_LIBRARY} ${PROTOBUF_LIBRARY} JsonCpp::JsonCpp)

	if(WIN32)
		target_link_libraries(transport psapi.lib bcrypt.lib)
	endif()
	target_compile_features(transport PUBLIC cxx_std_11)

	if(PQXX_FOUND)
		target_link_libraries(transport	${PQXX_LIBRARIES} ${PQ_LIBRARY})
	endif()

	set_target_properties(transport PROPERTIES
		VERSION ${TRANSPORT_VERSION} SOVERSION ${TRANSPORT_VERSION}
	)
	if(APPLE)
		target_link_libraries(transport ${APPLE_FRAMEWORKS})
	endif()

	install(TARGETS transport LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries)

	#configure_file(transport.pc.in "${CMAKE_CURRENT_BINARY_DIR}/transport.pc")
	#install(FILES "${CMAKE_CURRENT_BINARY_DIR}/transport.pc" DESTINATION lib/pkgconfig)
