aboutsummaryrefslogtreecommitdiff
path: root/lib/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'lib/CMakeLists.txt')
-rw-r--r--lib/CMakeLists.txt57
1 files changed, 57 insertions, 0 deletions
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
new file mode 100644
index 0000000..3ec0f68
--- /dev/null
+++ b/lib/CMakeLists.txt
@@ -0,0 +1,57 @@
+include_directories(
+ ${CMAKE_SOURCE_DIR}/include
+ ${CMAKE_BINARY_DIR}/include
+)
+
+set(libspm_src
+ config.c
+ compat.c
+ resolve.c
+ fs.c
+ rpath.c
+ find.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
+)
+
+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_libraries(libspm crypto ssl curl)
+if (LINUX)
+ target_link_libraries(libspm rt)
+endif()
+
+if(MSVC)
+ target_compile_options(libspm PRIVATE /W4 /WX)
+else()
+ target_compile_options(libspm PRIVATE -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
+)