| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- set(ch_source_files
- ch.cpp
- ChakraRtInterface.cpp
- CodexAssert.cpp
- Debugger.cpp
- Helpers.cpp
- HostConfigFlags.cpp
- WScriptJsrt.cpp
- )
- if (STATIC_LIBRARY)
- set(ch_source_files "${ch_source_files}"
- ../ChakraCore/TestHooks.cpp
- )
- endif()
- add_executable (ch ${ch_source_files})
- set_target_properties(ch
- PROPERTIES
- POSITION_INDEPENDENT_CODE True
- )
- include_directories(..)
- target_include_directories (ch
- PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
- ../ChakraCore
- ../../lib/Common
- ../../lib/Jsrt
- ../../lib/Runtime
- ../../lib/Parser
- )
- if(STATIC_LIBRARY)
- if(CC_TARGET_OS_ANDROID OR CC_TARGET_OS_LINUX)
- set(LINKER_START_GROUP -Wl,--start-group)
- set(LINKER_END_GROUP -Wl,--end-group -static-libstdc++)
- elseif(CC_TARGET_OS_OSX)
- set(LINKER_START_GROUP -Wl,-force_load,)
- endif()
- if (NOT CC_TARGET_OS_ANDROID)
- set(LINKER_END_GROUP
- "${LINKER_END_GROUP}"
- pthread
- )
- endif()
- # common link deps
- set(lib_target "${lib_target}"
- -Wl,-undefined,error
- ${LINKER_START_GROUP}
- Chakra.Pal
- Chakra.Common.Core
- Chakra.Jsrt
- ${LINKER_END_GROUP}
- dl
- ${ICULIB}
- )
- if(CC_TARGET_OS_OSX)
- set(lib_target "${lib_target}"
- "-framework CoreFoundation"
- "-framework Security"
- )
- endif() # Linux ?
- else() # // shared library below
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fPIE")
- if(CC_TARGET_OS_ANDROID OR CC_TARGET_OS_LINUX)
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie") # osx clang sets this by default
- endif()
- set(lib_target
- PRIVATE Chakra.Pal
- PRIVATE Chakra.Common.Codex.Singular
- PRIVATE Chakra.Runtime.PlatformAgnostic.Singular
- )
- endif()
- if(CC_TARGET_OS_ANDROID OR CC_TARGET_OS_LINUX)
- set(lib_target "${lib_target}"
- -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/ch.version
- )
- elseif(CC_TARGET_OS_OSX)
- if(CC_TARGETS_X86)
- set(lib_target "${lib_target} -arch i386")
- elseif(CC_TARGETS_ARM)
- set(lib_target "${lib_target} -arch arm")
- endif()
- endif()
- target_link_libraries (ch ${lib_target})
- if(NOT CC_XCODE_PROJECT)
- # Add a post build event to the ch target
- # which executes a command to copy ch to
- # BuildLinux for convenience
- add_custom_command(TARGET ch POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy_if_different
- "${CHAKRACORE_BINARY_DIR}/bin/ch/ch"
- ${CHAKRACORE_BINARY_DIR}/)
- endif()
|