1- if (BuildJIT)
2- set (chakra_backend_objects $<TARGET_OBJECTS:Chakra.Backend>)
3- endif ()
4-
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-
10- add_library (ChakraCoreStatic STATIC
11- $<TARGET_OBJECTS:Chakra.Pal>
12- $<TARGET_OBJECTS:Chakra.Common.Core>
13- $<TARGET_OBJECTS:Chakra.Jsrt>
14- $<TARGET_OBJECTS:Chakra.Jsrt.Core>
15- ${chakra_backend_objects}
16- $<TARGET_OBJECTS:Chakra.Common.Common>
17- $<TARGET_OBJECTS:Chakra.Common.Codex>
18- $<TARGET_OBJECTS:Chakra.Common.DataStructures>
19- $<TARGET_OBJECTS:Chakra.Common.Exceptions>
20- $<TARGET_OBJECTS:Chakra.Common.Memory>
21- $<TARGET_OBJECTS:Chakra.Common.Util>
22- $<TARGET_OBJECTS:Chakra.Runtime.Base>
23- $<TARGET_OBJECTS:Chakra.Runtime.ByteCode>
24- $<TARGET_OBJECTS:Chakra.Runtime.Debug>
25- $<TARGET_OBJECTS:Chakra.Runtime.Language >
26- $<TARGET_OBJECTS:Chakra.Runtime.Library>
27- $<TARGET_OBJECTS:Chakra.Runtime.Math>
28- $<TARGET_OBJECTS:Chakra.Runtime.Types>
29- $<TARGET_OBJECTS:Chakra.Runtime.PlatformAgnostic>
30- $<TARGET_OBJECTS:Chakra.Parser>
31- ${wasm_objects}
1+ add_library (ChakraCore SHARED
2+ ChakraCoreShared.cpp
3+ ConfigParserExternals.cpp
4+ TestHooks.cpp
325)
336
34- if (CC_TARGET_OS_OSX)
35- target_link_libraries (ChakraCoreStatic
36- "-framework CoreFoundation"
37- "-framework Security"
38- )
39- else ()
40- if (NOT CC_TARGET_OS_ANDROID)
41- set (PTHREAD "pthread" )
42- endif ()
43-
44- target_link_libraries (ChakraCoreStatic
45- ${CC_LTO_ENABLED}
46- ${PTHREAD}
47- "dl"
48- )
49- endif ()
50-
517target_include_directories (
52- ChakraCoreStatic PUBLIC
8+ ChakraCore PUBLIC
539 ${CMAKE_CURRENT_SOURCE_DIR}
5410 ${CHAKRACORE_SOURCE_DIR} /lib/Backend
5511 ${CHAKRACORE_SOURCE_DIR} /lib/Common
@@ -60,74 +16,66 @@ target_include_directories (
6016 ${wasm_includes}
6117 )
6218
63- if (NOT STATIC_LIBRARY)
64- add_library (ChakraCore SHARED
65- ChakraCoreShared.cpp
66- ConfigParserExternals.cpp
67- TestHooks.cpp
68- )
19+ #
20+ # Link step for the ChakraCore shared library
21+ #
22+ # External libraries we link with are the following:
23+ # pthread: For threading
24+ # stdc++/gcc_s: C++ runtime code
25+ # dl: For shared library loading related functions
26+ #
27+ if (CC_TARGET_OS_ANDROID OR CC_TARGET_OS_LINUX)
28+ set (LINKER_START_GROUP
29+ -fPIC
30+ -Wl,--start -group
31+ -Wl,--whole-archive
32+ )
6933
70- #
71- # Link step for the ChakraCore shared library
72- #
73- # External libraries we link with are the following:
74- # pthread: For threading
75- # stdc++/gcc_s: C++ runtime code
76- # dl: For shared library loading related functions
77- #
78- if (CC_TARGET_OS_ANDROID OR CC_TARGET_OS_LINUX)
79- set (LINKER_START_GROUP
80- -fPIC
81- -Wl,--start -group
82- -Wl,--whole-archive
83- )
34+ set (LINKER_END_GROUP
35+ -Wl,--no -whole-archive
36+ -Wl,--end -group
37+ -static -libstdc++
38+ )
39+ elseif (CC_TARGET_OS_OSX)
40+ set (LINKER_START_GROUP -Wl,-force_load,)
41+ endif ()
8442
85- set (LINKER_END_GROUP
86- -Wl,--no -whole-archive
87- -Wl,--end -group
88- -static -libstdc++
89- )
90- elseif (CC_TARGET_OS_OSX)
91- set (LINKER_START_GROUP -Wl,-force_load,)
92- endif ()
43+ # common link deps
44+ set (lib_target "${lib_target} "
45+ -Wl,-undefined,error
46+ ${LINKER_START_GROUP}
47+ ChakraCoreStatic
48+ ${LINKER_END_GROUP}
49+ pthread
50+ dl
51+ ${ICULIB}
52+ )
9353
94- # common link deps
54+ if (CC_TARGET_OS_ANDROID OR CC_TARGET_OS_LINUX)
9555 set (lib_target "${lib_target} "
96- -Wl,-undefined,error
97- ${LINKER_START_GROUP}
98- ChakraCoreStatic
99- ${LINKER_END_GROUP}
100- pthread
101- dl
102- ${ICULIB}
56+ -Wl,--version -script=${CMAKE_CURRENT_SOURCE_DIR} /libChakraCoreLib.version
57+ # reduce link time memory usage
58+ -Xlinker --no -keep-memory
10359 )
104-
105- if (CC_TARGET_OS_ANDROID OR CC_TARGET_OS_LINUX)
106- set (lib_target "${lib_target} "
107- -Wl,--version -script=${CMAKE_CURRENT_SOURCE_DIR} /libChakraCoreLib.version
108- # reduce link time memory usage
109- -Xlinker --no -keep-memory
110- )
111- elseif (CC_TARGET_OS_OSX)
112- if (CC_TARGETS_X86)
113- set (lib_target "${lib_target} -arch i386" )
114- elseif (CC_TARGETS_ARM)
115- set (lib_target "${lib_target} -arch arm" )
116- endif ()
60+ elseif (CC_TARGET_OS_OSX)
61+ if (CC_TARGETS_X86)
62+ set (lib_target "${lib_target} -arch i386" )
63+ elseif (CC_TARGETS_ARM)
64+ set (lib_target "${lib_target} -arch arm" )
11765 endif ()
66+ endif ()
11867
119- target_link_libraries (ChakraCore
120- ${lib_target}
121- ${CC_LTO_ENABLED}
122- )
68+ target_link_libraries (ChakraCore
69+ ${lib_target}
70+ ${CC_LTO_ENABLED}
71+ )
12372
124- if (NOT CC_XCODE_PROJECT)
125- # Post build step to copy the built shared library
126- # to out/{BUILD_TYPE}/ (or whatever the CMakeBuildDir is)
127- add_custom_command (TARGET ChakraCore POST_BUILD
128- COMMAND ${CMAKE_COMMAND} -E copy_if_different
129- "${CHAKRACORE_BINARY_DIR} /bin/ChakraCore/libChakraCore.${DYN_LIB_EXT} "
130- ${CHAKRACORE_BINARY_DIR} /
131- )
132- endif ()
73+ if (NOT CC_XCODE_PROJECT)
74+ # Post build step to copy the built shared library
75+ # to out/{BUILD_TYPE}/ (or whatever the CMakeBuildDir is)
76+ add_custom_command (TARGET ChakraCore POST_BUILD
77+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
78+ "${CHAKRACORE_BINARY_DIR} /bin/ChakraCore/libChakraCore.${DYN_LIB_EXT} "
79+ ${CHAKRACORE_BINARY_DIR} /
80+ )
13381endif ()
0 commit comments