CMakeLists.txt 970 B

1234567891011121314151617181920212223242526272829303132
  1. cmake_minimum_required(VERSION 3.26)
  2. project(ReadWriteFileCpp)
  3. set(Boost_USE_STATIC_LIBS ON)
  4. find_package(Boost REQUIRED COMPONENTS)
  5. include_directories(${Boost_INCLUDE_DIRS})
  6. ## Nlohmann json
  7. find_package(nlohmann_json 3.2.0 REQUIRED)
  8. include_directories(includes)
  9. set(SRC_ROOT
  10. src/ParserFile.cpp
  11. src/ParserIniFile.cpp
  12. src/ParserJsonFile.cpp
  13. )
  14. ## building project
  15. add_library(${PROJECT_NAME} ${SRC_ROOT})
  16. target_include_directories(${PROJECT_NAME} PUBLIC includes)
  17. target_link_libraries(${PROJECT_NAME} ${PD_OR_N_CURSES})
  18. include(GNUInstallDirs)
  19. install(TARGETS ${PROJECT_NAME}
  20. RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
  21. LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
  22. ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
  23. )
  24. install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
  25. set_property(TARGET ${PROJECT_NAME} PROPERTY POSITION_INDEPENDENT_CODE ON)
  26. ## ABI version
  27. set_property(TARGET ${PROJECT_NAME} PROPERTY SOVERSION 1)