set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}  -fvisibility=hidden")
include_directories(include)
include_directories(src)

add_library(libcupt SHARED
	./include/cupt/versionstring.hpp
	./include/cupt/fwd.hpp
	./include/cupt/system/worker.hpp
	./include/cupt/system/resolvers/native.hpp
	./include/cupt/system/resolver.hpp
	./include/cupt/system/snapshots.hpp
	./include/cupt/system/state.hpp
	./include/cupt/stringrange.hpp
	./include/cupt/download/method.hpp
	./include/cupt/download/methodfactory.hpp
	./include/cupt/download/progresses/console.hpp
	./include/cupt/download/manager.hpp
	./include/cupt/download/progress.hpp
	./include/cupt/download/uri.hpp
	./include/cupt/file.hpp
	./include/cupt/packagename.hpp
	./include/cupt/format2.hpp
	./include/cupt/common.hpp
	./include/cupt/config.hpp
	./include/cupt/cache/package.hpp
	./include/cupt/cache/version.hpp
	./include/cupt/cache/binaryversion.hpp
	./include/cupt/cache/binarypackage.hpp
	./include/cupt/cache/sourcepackage.hpp
	./include/cupt/cache/sourceversion.hpp
	./include/cupt/cache/releaseinfo.hpp
	./include/cupt/cache/relation.hpp
	./include/cupt/hashsums.hpp
	./include/cupt/range.hpp
	./include/cupt/cache.hpp
	./src/internal/common.cpp
	./src/internal/configparser.cpp
	./src/internal/nativeresolver/impl.cpp
	./src/internal/nativeresolver/solution.cpp
	./src/internal/nativeresolver/score.cpp
	./src/internal/nativeresolver/dependencygraph.cpp
	./src/internal/nativeresolver/decisionfailtree.cpp
	./src/internal/nativeresolver/autoremovalpossibility.cpp
	./src/internal/lock.cpp
	./src/internal/cacheimpl.cpp
	./src/internal/pininfo.cpp
	./src/internal/filesystem.cpp
	./src/internal/debdeltahelper.cpp
	./src/internal/tagparser.cpp
	./src/internal/worker/base.cpp
	./src/internal/worker/archives.cpp
	./src/internal/worker/dpkg.cpp
	./src/internal/worker/metadata.cpp
	./src/internal/worker/setupandpreview.cpp
	./src/internal/worker/packages.cpp
	./src/internal/worker/snapshots.cpp
	./src/internal/worker/temppath.cpp
	./src/internal/regex.cpp
	./src/internal/cachefiles.cpp
	./src/internal/logger.cpp
	./src/internal/pipe.cpp
	./src/internal/basepackageiterator.cpp
	./src/internal/indexofindex.cpp
	./src/internal/versionparse.cpp
	./src/internal/parse.hpp
	./src/internal/parse.tpp
	./src/config.cpp
	./src/cache.cpp
	./src/cache/relation.cpp
	./src/cache/binarypackage.cpp
	./src/cache/binaryversion.cpp
	./src/cache/sourcepackage.cpp
	./src/cache/sourceversion.cpp
	./src/cache/package.cpp
	./src/cache/version.cpp
	./src/system/state.cpp
	./src/system/resolver.cpp
	./src/system/resolvers/native.cpp
	./src/system/worker.cpp
	./src/system/snapshots.cpp
	./src/download/uri.cpp
	./src/download/manager.cpp
	./src/download/method.cpp
	./src/download/methodfactory.cpp
	./src/download/progress.cpp
	./src/download/progresses/console.cpp
	./src/common.cpp
	./src/common/compareversions.cpp
	./src/common/consumers.cpp
	./src/file.cpp
	./src/hashsums.cpp
	./src/versionstring.cpp
)
set_target_properties(libcupt PROPERTIES SOVERSION ${CUPT_SOVERSION} OUTPUT_NAME "cupt${CUPT_API_VERSION}")
target_link_libraries(libcupt dl rt gcrypt -Wl,--no-undefined)

install(TARGETS libcupt DESTINATION lib)
install(DIRECTORY include/ DESTINATION include)
