CMakeLists.txt 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #
  2. # Copyright (c) 2016-present, Facebook, Inc.
  3. # All rights reserved.
  4. #
  5. # This source code is licensed under the MIT license found in the
  6. # LICENSE file in the root directory of this source tree.
  7. #
  8. cmake_minimum_required(VERSION 2.8.9)
  9. project(fasttext)
  10. # The version number.
  11. set (fasttext_VERSION_MAJOR 0)
  12. set (fasttext_VERSION_MINOR 1)
  13. include_directories(fasttext)
  14. set(CMAKE_CXX_FLAGS " -pthread -std=c++11 -funroll-loops -O3 -march=native")
  15. set(HEADER_FILES
  16. src/args.h
  17. src/autotune.h
  18. src/densematrix.h
  19. src/dictionary.h
  20. src/fasttext.h
  21. src/loss.h
  22. src/matrix.h
  23. src/meter.h
  24. src/model.h
  25. src/productquantizer.h
  26. src/quantmatrix.h
  27. src/real.h
  28. src/utils.h
  29. src/vector.h)
  30. set(SOURCE_FILES
  31. src/args.cc
  32. src/autotune.cc
  33. src/densematrix.cc
  34. src/dictionary.cc
  35. src/fasttext.cc
  36. src/loss.cc
  37. src/main.cc
  38. src/matrix.cc
  39. src/meter.cc
  40. src/model.cc
  41. src/productquantizer.cc
  42. src/quantmatrix.cc
  43. src/utils.cc
  44. src/vector.cc)
  45. if (NOT MSVC)
  46. include(GNUInstallDirs)
  47. configure_file("fasttext.pc.in" "fasttext.pc" @ONLY)
  48. install(FILES "${CMAKE_BINARY_DIR}/fasttext.pc" DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
  49. endif()
  50. add_library(fasttext-shared SHARED ${SOURCE_FILES} ${HEADER_FILES})
  51. add_library(fasttext-static STATIC ${SOURCE_FILES} ${HEADER_FILES})
  52. add_library(fasttext-static_pic STATIC ${SOURCE_FILES} ${HEADER_FILES})
  53. set_target_properties(fasttext-shared PROPERTIES OUTPUT_NAME fasttext
  54. SOVERSION "${fasttext_VERSION_MAJOR}")
  55. set_target_properties(fasttext-static PROPERTIES OUTPUT_NAME fasttext)
  56. set_target_properties(fasttext-static_pic PROPERTIES OUTPUT_NAME fasttext_pic
  57. POSITION_INDEPENDENT_CODE True)
  58. add_executable(fasttext-bin src/main.cc)
  59. target_link_libraries(fasttext-bin pthread fasttext-static)
  60. set_target_properties(fasttext-bin PROPERTIES PUBLIC_HEADER "${HEADER_FILES}" OUTPUT_NAME fasttext)
  61. install (TARGETS fasttext-shared
  62. LIBRARY DESTINATION lib)
  63. install (TARGETS fasttext-static
  64. ARCHIVE DESTINATION lib)
  65. install (TARGETS fasttext-static_pic
  66. ARCHIVE DESTINATION lib)
  67. install (TARGETS fasttext-bin
  68. RUNTIME DESTINATION bin
  69. PUBLIC_HEADER DESTINATION include/fasttext)