CMakeLists.txt 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. cmake_minimum_required(VERSION 3.5)
  2. ################### Variables. ####################
  3. # Change if you want modify path or other values. #
  4. ###################################################
  5. set(PROJECT_NAME hunspell)
  6. # Output Variables
  7. set(OUTPUT_DEBUG Debug/bin)
  8. set(OUTPUT_RELEASE Release/bin)
  9. ############## CMake Project ################
  10. # The main options of project #
  11. #############################################
  12. project(${PROJECT_NAME} CXX C)
  13. #set_target_properties(${PROJECT_NAME} PROPERTIES LINKER_LANGUAGE CXX)
  14. # Define Release by default.
  15. if(NOT CMAKE_BUILD_TYPE)
  16. set(CMAKE_BUILD_TYPE "Debug")
  17. message(STATUS "Build type not specified: Use Debug by default.")
  18. endif(NOT CMAKE_BUILD_TYPE)
  19. # Definition of Macros
  20. add_definitions(
  21. -D_DEBUG
  22. -DIDEHELPER_EXPORTS
  23. -DBFSYSLIB_DYNAMIC
  24. -DUNICODE
  25. -D_UNICODE
  26. -DBF_NO_FBX
  27. -DFT2_BUILD_LIBRARY
  28. -DBFSYSLIB_DYNAMIC
  29. )
  30. include_directories(
  31. .
  32. src/linux
  33. )
  34. ############## Artefacts Output #################
  35. # Defines outputs , depending Debug or Release. #
  36. #################################################
  37. if(CMAKE_BUILD_TYPE STREQUAL "Debug")
  38. set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_DEBUG}")
  39. set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_DEBUG}")
  40. set(CMAKE_EXECUTABLE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_DEBUG}")
  41. else()
  42. set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_RELEASE}")
  43. set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_RELEASE}")
  44. set(CMAKE_EXECUTABLE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_RELEASE}")
  45. endif()
  46. ################### Dependencies ##################
  47. # Add Dependencies to project. #
  48. ###################################################
  49. option(BUILD_DEPENDS
  50. "Build other CMake project."
  51. ON
  52. )
  53. # Dependencies : disable BUILD_DEPENDS to link with lib already build.
  54. if(BUILD_DEPENDS)
  55. else()
  56. endif()
  57. ################# Flags ################
  58. # Defines Flags for Windows and Linux. #
  59. ########################################
  60. if(MSVC)
  61. set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /W3 /MD /MDd /Od /EHsc")
  62. set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /W3 /GL /Od /Oi /Gy /EHsc")
  63. endif(MSVC)
  64. if(NOT MSVC)
  65. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wno-multichar")
  66. endif(NOT MSVC)
  67. ################ Files ################
  68. # -- Add files to project. -- #
  69. #######################################
  70. file(GLOB SRC_FILES
  71. src/hunspell/affentry.cxx
  72. src/hunspell/affixmgr.cxx
  73. src/hunspell/csutil.cxx
  74. src/hunspell/dictmgr.cxx
  75. src/hunspell/filemgr.cxx
  76. src/hunspell/hashmgr.cxx
  77. src/hunspell/hunspell.cxx
  78. src/hunspell/hunzip.cxx
  79. src/hunspell/phonet.cxx
  80. src/hunspell/replist.cxx
  81. src/hunspell/suggestmgr.cxx
  82. )
  83. # Add library to build.
  84. add_library(${PROJECT_NAME} SHARED
  85. ${SRC_FILES}
  86. )
  87. # Link with other dependencies.
  88. if(MSVC)
  89. target_link_libraries(${PROJECT_NAME} imm32.lib version.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib)
  90. endif(MSVC)