global_flags.cmake 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. set(CMAKE_C_FLAGS "\
  2. -fexceptions \
  3. -fno-common \
  4. -fcolor-diagnostics \
  5. -faligned-allocation \
  6. -ffunction-sections \
  7. -fdata-sections \
  8. -Wall \
  9. -Wextra \
  10. -Wno-parentheses \
  11. -Wno-implicit-const-int-float-conversion \
  12. -Wno-unknown-warning-option \
  13. -D_THREAD_SAFE \
  14. -D_PTHREADS \
  15. -D_REENTRANT \
  16. -D_LARGEFILE_SOURCE \
  17. -D__STDC_CONSTANT_MACROS \
  18. -D__STDC_FORMAT_MACROS \
  19. -D_FILE_OFFSET_BITS=64 \
  20. -D_GNU_SOURCE \
  21. -D_YNDX_LIBUNWIND_ENABLE_EXCEPTION_BACKTRACE \
  22. -D__LONG_LONG_SUPPORTED \
  23. -D_libunwind_ \
  24. -DLIBCXX_BUILDING_LIBCXXRT \
  25. "
  26. )
  27. set(CMAKE_CXX_FLAGS "\
  28. -fexceptions \
  29. -fno-common \
  30. -fcolor-diagnostics \
  31. -faligned-allocation \
  32. -ffunction-sections \
  33. -fdata-sections \
  34. -Wall \
  35. -Wextra \
  36. -Wno-parentheses \
  37. -Wno-implicit-const-int-float-conversion \
  38. -Wno-unknown-warning-option \
  39. -D_THREAD_SAFE \
  40. -D_PTHREADS \
  41. -D_REENTRANT \
  42. -D_LARGEFILE_SOURCE \
  43. -D__STDC_CONSTANT_MACROS \
  44. -D__STDC_FORMAT_MACROS \
  45. -D_GNU_SOURCE \
  46. -D_YNDX_LIBUNWIND_ENABLE_EXCEPTION_BACKTRACE \
  47. -D__LONG_LONG_SUPPORTED \
  48. -D_libunwind_ \
  49. -DLIBCXX_BUILDING_LIBCXXRT \
  50. -Woverloaded-virtual \
  51. -Wimport-preprocessor-directive-pedantic \
  52. -Wno-undefined-var-template \
  53. -Wno-return-std-move \
  54. -Wno-address-of-packed-member \
  55. -Wno-defaulted-function-deleted \
  56. -Wno-pessimizing-move \
  57. -Wno-range-loop-construct \
  58. -Wno-deprecated-anon-enum-enum-conversion \
  59. -Wno-deprecated-enum-enum-conversion \
  60. -Wno-deprecated-enum-float-conversion \
  61. -Wno-ambiguous-reversed-operator \
  62. -Wno-deprecated-volatile \
  63. "
  64. )
  65. add_link_options(
  66. -nodefaultlibs
  67. -lc
  68. -lm
  69. )
  70. if (APPLE)
  71. set(CMAKE_SHARED_LINKER_FLAGS "-undefined dynamic_lookup")
  72. elseif(UNIX)
  73. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fuse-init-array")
  74. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fuse-init-array")
  75. endif()
  76. if (ANDROID)
  77. include_directories(SYSTEM ${CMAKE_ANDROID_NDK}/sources/cxx-stl/llvm-libc++abi/include)
  78. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsigned-char")
  79. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsigned-char")
  80. else()
  81. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_FILE_OFFSET_BITS=64")
  82. endif()
  83. if (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
  84. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsigned-char")
  85. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsigned-char")
  86. endif()
  87. if (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
  88. set(CMAKE_CXX_FLAGS "\
  89. ${CMAKE_CXX_FLAGS} \
  90. -m64 \
  91. -DSSE_ENABLED=1 \
  92. -DSSE3_ENABLED=1 \
  93. -DSSSE3_ENABLED=1 \
  94. -DSSE41_ENABLED=1 \
  95. -DSSE42_ENABLED=1 \
  96. -DPOPCNT_ENABLED=1 \
  97. -DCX16_ENABLED=1 \
  98. -msse2 \
  99. -msse3 \
  100. -mssse3 \
  101. -msse4.1 \
  102. -msse4.2 \
  103. -mpopcnt \
  104. -mcx16 \
  105. ")
  106. set(CMAKE_C_FLAGS "\
  107. ${CMAKE_C_FLAGS} \
  108. -m64 \
  109. -msse2 \
  110. -msse3 \
  111. -mssse3 \
  112. -msse4.1 \
  113. -msse4.2 \
  114. -mpopcnt \
  115. -mcx16 \
  116. -DSSE_ENABLED=1 \
  117. -DSSE3_ENABLED=1 \
  118. -DSSSE3_ENABLED=1 \
  119. -DSSE41_ENABLED=1 \
  120. -DSSE42_ENABLED=1 \
  121. -DPOPCNT_ENABLED=1 \
  122. -DCX16_ENABLED=1 \
  123. ")
  124. endif()
  125. if (NOT CMAKE_CROSSCOMPILING)
  126. set(TOOLS_ROOT ${CMAKE_BINARY_DIR})
  127. elseif(NOT TOOLS_ROOT)
  128. message(FATAL_ERROR "TOOLS_ROOT is required for crosscompilation")
  129. endif()