fix-install.diff 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. diff --git a/CMakeLists.txt b/CMakeLists.txt
  2. index ef7bbda..a8ef219 100644
  3. --- a/CMakeLists.txt
  4. +++ b/CMakeLists.txt
  5. @@ -3,6 +3,7 @@ cmake_minimum_required(VERSION 3.12)
  6. project(lsp)
  7. option(LSP_USE_SANITIZERS "Use address and undefined behavior sanitizers" ON)
  8. +option(BUILD_SHARED_LIBS "Build shared library" OFF)
  9. set(CMAKE_CXX_STANDARD 20)
  10. @@ -91,6 +92,28 @@ add_custom_command(
  11. COMMENT "Generating lsp types from meta model..."
  12. )
  13. +if(BUILD_SHARED_LIBS)
  14. +if(WIN32)
  15. +set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
  16. +endif()
  17. +add_library(lsp SHARED)
  18. +else()
  19. add_library(lsp STATIC)
  20. +endif()
  21. target_include_directories(lsp PUBLIC . ${LSP_GENERATED_FILES_DIR})
  22. target_sources(lsp PRIVATE ${LSP_HEADERS} ${LSP_SOURCES} ${LSP_GENERATED_HEADERS} ${LSP_GENERATED_SOURCES})
  23. +install(TARGETS lsp
  24. + ARCHIVE DESTINATION lib
  25. + LIBRARY DESTINATION lib
  26. + RUNTIME DESTINATION bin
  27. +)
  28. +
  29. +install(DIRECTORY ${LSP_SRC_DIR}/
  30. + DESTINATION include/lsp
  31. + FILES_MATCHING PATTERN "*.h" PATTERN "*.inl"
  32. +)
  33. +
  34. +install(DIRECTORY ${LSP_GENERATED_FILES_DIR}/lsp/
  35. + DESTINATION include/lsp
  36. + FILES_MATCHING PATTERN "*.h" PATTERN "*.inl"
  37. +)