CMakeLists.txt 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. add_compile_options(-fPIC)
  2. if(BuildJIT)
  3. set(chakra_backend_objects $<TARGET_OBJECTS:Chakra.Backend>)
  4. endif()
  5. if(CC_TARGETS_AMD64)
  6. set(wasm_objects $<TARGET_OBJECTS:Chakra.WasmReader>)
  7. set(wasm_includes ${CHAKRACORE_SOURCE_DIR}/lib/WasmReader)
  8. endif()
  9. if(CAN_BUILD_WABT)
  10. set(wabt_objects $<TARGET_OBJECTS:libwabt>)
  11. set(wabt_includes ${CHAKRACORE_SOURCE_DIR}/lib/wabt)
  12. endif()
  13. if (USE_LTTNG)
  14. set(lttng_objects $<TARGET_OBJECTS:Chakra.LTTng>)
  15. endif()
  16. add_library (ChakraCoreStatic STATIC
  17. ChakraCoreStatic.cpp
  18. $<TARGET_OBJECTS:Chakra.Pal>
  19. $<TARGET_OBJECTS:Chakra.Common.Core>
  20. $<TARGET_OBJECTS:Chakra.Jsrt>
  21. $<TARGET_OBJECTS:Chakra.Jsrt.Core>
  22. ${chakra_backend_objects}
  23. $<TARGET_OBJECTS:Chakra.Common.Common>
  24. $<TARGET_OBJECTS:Chakra.Common.Codex>
  25. $<TARGET_OBJECTS:Chakra.Common.DataStructures>
  26. $<TARGET_OBJECTS:Chakra.Common.Exceptions>
  27. $<TARGET_OBJECTS:Chakra.Common.Memory>
  28. $<TARGET_OBJECTS:Chakra.Common.Util>
  29. $<TARGET_OBJECTS:Chakra.Runtime.Base>
  30. $<TARGET_OBJECTS:Chakra.Runtime.ByteCode>
  31. $<TARGET_OBJECTS:Chakra.Runtime.Debug>
  32. $<TARGET_OBJECTS:Chakra.Runtime.Language>
  33. $<TARGET_OBJECTS:Chakra.Runtime.Library>
  34. $<TARGET_OBJECTS:Chakra.Runtime.Math>
  35. $<TARGET_OBJECTS:Chakra.Runtime.Types>
  36. $<TARGET_OBJECTS:Chakra.Runtime.PlatformAgnostic>
  37. $<TARGET_OBJECTS:Chakra.Parser>
  38. ${wasm_objects}
  39. ${wabt_objects}
  40. ${lttng_objects}
  41. )
  42. if(USE_LTTNG)
  43. target_link_libraries(ChakraCoreStatic
  44. -llttng-ust
  45. -ldl
  46. )
  47. endif()
  48. if(CC_TARGET_OS_OSX)
  49. target_link_libraries(ChakraCoreStatic
  50. "-framework CoreFoundation"
  51. "-framework Security"
  52. )
  53. else()
  54. if (NOT CC_TARGET_OS_ANDROID)
  55. set(PTHREAD "pthread")
  56. endif()
  57. target_link_libraries(ChakraCoreStatic
  58. ${PTHREAD}
  59. "dl"
  60. )
  61. endif()
  62. target_include_directories (
  63. ChakraCoreStatic PUBLIC
  64. ${CMAKE_CURRENT_SOURCE_DIR}
  65. ${CHAKRACORE_SOURCE_DIR}/lib/Backend
  66. ${CHAKRACORE_SOURCE_DIR}/lib/Common
  67. ${CHAKRACORE_SOURCE_DIR}/lib/Runtime
  68. ${CHAKRACORE_SOURCE_DIR}/lib/Runtime/ByteCode
  69. ${CHAKRACORE_SOURCE_DIR}/lib/Parser
  70. ${CHAKRACORE_SOURCE_DIR}/lib/Jsrt
  71. ${wasm_includes}
  72. ${wabt_includes}
  73. )
  74. if(BuildJIT)
  75. add_subdirectory (Backend)
  76. endif()
  77. add_subdirectory (Common)
  78. add_subdirectory (Parser)
  79. add_subdirectory (Runtime)
  80. add_subdirectory (Jsrt)
  81. if (CC_TARGETS_AMD64)
  82. add_subdirectory (WasmReader)
  83. set(BUILD_TESTS OFF)
  84. set(RUN_BISON OFF)
  85. set(RUN_RE2C OFF)
  86. endif()
  87. if(CAN_BUILD_WABT)
  88. add_subdirectory (wabt)
  89. endif()
  90. if(NOT CC_XCODE_PROJECT)
  91. add_custom_command(TARGET ChakraCoreStatic POST_BUILD
  92. COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/include"
  93. COMMAND ${CMAKE_COMMAND} -E copy_if_different
  94. "${CMAKE_CURRENT_SOURCE_DIR}/Jsrt/ChakraCore.h"
  95. "${CMAKE_BINARY_DIR}/include"
  96. COMMAND ${CMAKE_COMMAND} -E copy_if_different
  97. "${CMAKE_CURRENT_SOURCE_DIR}/Jsrt/ChakraCommon.h"
  98. "${CMAKE_BINARY_DIR}/include"
  99. COMMAND ${CMAKE_COMMAND} -E copy_if_different
  100. "${CMAKE_CURRENT_SOURCE_DIR}/Jsrt/ChakraDebug.h"
  101. "${CMAKE_BINARY_DIR}/include"
  102. COMMAND ${CMAKE_COMMAND} -E copy_if_different
  103. "${CMAKE_CURRENT_SOURCE_DIR}/Common/ChakraCoreVersion.h"
  104. "${CMAKE_BINARY_DIR}/include"
  105. )
  106. endif(NOT CC_XCODE_PROJECT)