CMakeLists.txt   [plain text]


set(JSC_SOURCES
    ../jsc.cpp
)

set(JSC_LIBRARIES
    ${CMAKE_DL_LIBS}
    JavaScriptCore${DEBUG_SUFFIX}
    WTF${DEBUG_SUFFIX}
)

if (WTF_OS_MAC_OS_X)
    list(APPEND JSC_LIBRARIES edit)
endif ()

if ("${JavaScriptCore_LIBRARY_TYPE}" MATCHES "STATIC")
    add_definitions(-DSTATICALLY_LINKED_WITH_JavaScriptCore)
endif ()

set(TESTAPI_SOURCES
    ../API/tests/CompareAndSwapTest.cpp
    ../API/tests/CustomGlobalObjectClassTest.c
    ../API/tests/ExecutionTimeLimitTest.cpp
    ../API/tests/FunctionOverridesTest.cpp
    ../API/tests/GlobalContextWithFinalizerTest.cpp
    ../API/tests/JSONParseTest.cpp
    ../API/tests/JSObjectGetProxyTargetTest.cpp
    ../API/tests/MultithreadedMultiVMExecutionTest.cpp
    ../API/tests/PingPongStackOverflowTest.cpp
    ../API/tests/TypedArrayCTest.cpp
    ../API/tests/testapi.c
)

WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS()

WEBKIT_WRAP_SOURCELIST(${JSC_SOURCES})
WEBKIT_WRAP_SOURCELIST(${TESTAPI_SOURCES})
include_directories(./ ${JavaScriptCore_INCLUDE_DIRECTORIES} ${JavaScriptCore_PRIVATE_INCLUDE_DIRECTORIES})
include_directories(SYSTEM ${JavaScriptCore_SYSTEM_INCLUDE_DIRECTORIES})
add_executable(jsc ${JSC_SOURCES})
target_link_libraries(jsc ${JSC_LIBRARIES})

if (JSC_OUTPUT_NAME)
    set_target_properties(jsc PROPERTIES OUTPUT_NAME ${JSC_OUTPUT_NAME})
endif ()

if (JSC_LINK_FLAGS)
    WEBKIT_ADD_TARGET_PROPERTIES(jsc LINK_FLAGS "${JSC_LINK_FLAGS}")
endif ()

if (SHOULD_INSTALL_JS_SHELL)
    install(TARGETS jsc DESTINATION "${LIBEXEC_INSTALL_DIR}")
endif ()

if (TARGET jscLib)
    add_dependencies(jsc jscLib)
endif ()

set(TESTMASM_SOURCES
    ../assembler/testmasm.cpp
)

set(TESTB3_SOURCES
    ../b3/testb3.cpp
)

set(TESTAIR_SOURCES
    ../b3/air/testair.cpp
)

if (DEVELOPER_MODE AND NOT WIN32)
    add_executable(testmasm ${TESTMASM_SOURCES})
    target_link_libraries(testmasm ${JSC_LIBRARIES})

    add_executable(testb3 ${TESTB3_SOURCES})
    target_link_libraries(testb3 ${JSC_LIBRARIES})

    add_executable(testair ${TESTAIR_SOURCES})
    target_link_libraries(testair ${JSC_LIBRARIES})

    add_executable(testapi ${TESTAPI_SOURCES})
    target_link_libraries(testapi ${JSC_LIBRARIES})
endif ()

file(COPY
    "${JAVASCRIPTCORE_DIR}/API/tests/testapi.js"
    DESTINATION
    ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
)
file(COPY
    "${JAVASCRIPTCORE_DIR}/API/tests/testapi-function-overrides.js"
    DESTINATION
    ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
)