Guest User

Untitled

a guest
Mar 21st, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.33 KB | None | 0 0
  1. # CMake build script template
  2. #
  3. # Building from source:
  4. # > mkdir build && cd build
  5. # > cmake ..
  6. # > cmake --build .
  7. #
  8. # Testing:
  9. # > ctest -V
  10. #
  11. # Install:
  12. # > cmake --build . --target install
  13.  
  14. cmake_minimum_required(VERSION 3.9)
  15. project(argsparser DESCRIPTION "A simple C++ command line argument parser.")
  16. include(GNUInstallDirs)
  17. enable_language(CXX)
  18. set(CMAKE_CXX_STANDARD 11)
  19.  
  20. # Instructions to build static library
  21. include_directories(${CMAKE_CURRENT_SOURCE_DIR})
  22.  
  23. set(
  24. SOURCE_FILES
  25. src/main.cpp
  26. )
  27.  
  28. set(
  29. HEADER_FILES
  30. include/main.h
  31. )
  32.  
  33. set(
  34. PRIVATE_HEADER_FILES
  35. )
  36.  
  37. set(
  38. LINK_LIBRARIES
  39. )
  40.  
  41. set(LIB_NAME libname) # libname is the name of the compiled library
  42.  
  43. add_library(${LIB_NAME} STATIC ${SOURCE_FILES})
  44. set_target_properties(
  45. ${LIB_NAME} PROPERTIES
  46. VERSION 1
  47. SOVERSION 1
  48. PUBLIC_HEADER "${HEADER_FILES}"
  49. PRIVATE_HEADER "${PRIVATE_HEADER_FILES}")
  50.  
  51. target_include_directories(${LIB_NAME} PUBLIC include)
  52.  
  53. target_link_libraries(${LIB_NAME} ${LINK_LIBRARIES})
  54.  
  55. install(TARGETS ${LIB_NAME}
  56. LIBRARY DESTINATION lib
  57. ARCHIVE DESTINATION include/${LIB_NAME}/static
  58. PUBLIC_HEADER DESTINATION include/${LIB_NAME}
  59. PRIVATE_HEADER DESTINATION include/${LIB_NAME})
  60.  
  61. # Option to build tests
  62. option(BUILD_TESTS "Build Tests." ON)
  63. if(BUILD_TESTS)
  64. include(CMakeTests.cmake)
  65. endif(BUILD_TESTS)
Add Comment
Please, Sign In to add comment