aboutsummaryrefslogtreecommitdiff
path: root/lib/CMakeLists.txt
blob: e9597028721e4b1b29acb424405c00fb2b7f8e4b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
include_directories(
	${CMAKE_SOURCE_DIR}/include
	${CMAKE_BINARY_DIR}/include
	${OpenSSL_INCLUDE_DIRS}
	${CURL_INCLUDE_DIRS}
)

set(libspm_src
	config.c
	compat.c
	resolve.c
	fs.c
	rpath.c
	shell.c
	archive.c
	str.c
	relocation.c
	install.c
	config_global.c
	manifest.c
	checksum.c
	extern/url.c
	version_spec.c
	spm_build.c
	mime.c
	internal_cmd.c
	environment.c
	mirrors.c
	strlist.c
	shlib.c
	user_input.c
	metadata.c
	purge.c
	error_handler.c
)

add_library(libspm_obj OBJECT ${libspm_src})
set_property(TARGET libspm_obj PROPERTY POSITION_INDEPENDENT_CODE 1)
add_library(libspm SHARED $<TARGET_OBJECTS:libspm_obj>)
add_library(libspm_static STATIC $<TARGET_OBJECTS:libspm_obj>)


target_link_directories(libspm PUBLIC ${OpenSSL_LIBRARY_DIRS} ${CURL_LIBRARY_DIRS})
target_link_libraries(libspm ${OpenSSL_LIBRARIES} ${CURL_LIBRARIES})
if (LINUX)
	target_link_libraries(libspm rt)
endif()

if(MSVC)
	target_compile_options(libspm PUBLIC /W4 /WX)
else()
	target_compile_options(libspm PUBLIC -Wall -Wextra -fstack-protector)
endif()

set_target_properties(libspm PROPERTIES OUTPUT_NAME "spm")
install(
	TARGETS libspm
	LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib
	ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX}/lib
)