CMakeLists.txt 3.1 KB

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