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
@@ -61,74 +17,66 @@ target_include_directories (
6117 "-fvisibility=hidden"
6218 )
6319
64- if (NOT STATIC_LIBRARY)
65- add_library (ChakraCore SHARED
66- ChakraCoreShared.cpp
67- ConfigParserExternals.cpp
68- TestHooks.cpp
69- )
20+ #
21+ # Link step for the ChakraCore shared library
22+ #
23+ # External libraries we link with are the following:
24+ # pthread: For threading
25+ # stdc++/gcc_s: C++ runtime code
26+ # dl: For shared library loading related functions
27+ #
28+ if (CC_TARGET_OS_ANDROID OR CC_TARGET_OS_LINUX)
29+ set (LINKER_START_GROUP
30+ -fPIC
31+ -Wl,--start -group
32+ -Wl,--whole-archive
33+ )
7034
71- #
72- # Link step for the ChakraCore shared library
73- #
74- # External libraries we link with are the following:
75- # pthread: For threading
76- # stdc++/gcc_s: C++ runtime code
77- # dl: For shared library loading related functions
78- #
79- if (CC_TARGET_OS_ANDROID OR CC_TARGET_OS_LINUX)
80- set (LINKER_START_GROUP
81- -fPIC
82- -Wl,--start -group
83- -Wl,--whole-archive
84- )
35+ set (LINKER_END_GROUP
36+ -Wl,--no -whole-archive
37+ -Wl,--end -group
38+ -static -libstdc++
39+ )
40+ elseif (CC_TARGET_OS_OSX)
41+ set (LINKER_START_GROUP -Wl,-force_load,)
42+ endif ()
8543
86- set (LINKER_END_GROUP
87- -Wl,--no -whole-archive
88- -Wl,--end -group
89- -static -libstdc++
90- )
91- elseif (CC_TARGET_OS_OSX)
92- set (LINKER_START_GROUP -Wl,-force_load,)
93- endif ()
44+ # common link deps
45+ set (lib_target "${lib_target} "
46+ -Wl,-undefined,error
47+ ${LINKER_START_GROUP}
48+ ChakraCoreStatic
49+ ${LINKER_END_GROUP}
50+ pthread
51+ dl
52+ ${ICULIB}
53+ )
9454
95- # common link deps
55+ if (CC_TARGET_OS_ANDROID OR CC_TARGET_OS_LINUX)
9656 set (lib_target "${lib_target} "
97- -Wl,-undefined,error
98- ${LINKER_START_GROUP}
99- ChakraCoreStatic
100- ${LINKER_END_GROUP}
101- pthread
102- dl
103- ${ICULIB}
57+ -Wl,--version -script=${CMAKE_CURRENT_SOURCE_DIR} /libChakraCoreLib.version
58+ # reduce link time memory usage
59+ -Xlinker --no -keep-memory
10460 )
105-
106- if (CC_TARGET_OS_ANDROID OR CC_TARGET_OS_LINUX)
107- set (lib_target "${lib_target} "
108- -Wl,--version -script=${CMAKE_CURRENT_SOURCE_DIR} /libChakraCoreLib.version
109- # reduce link time memory usage
110- -Xlinker --no -keep-memory
111- )
112- elseif (CC_TARGET_OS_OSX)
113- if (CC_TARGETS_X86)
114- set (lib_target "${lib_target} -arch i386" )
115- elseif (CC_TARGETS_ARM)
116- set (lib_target "${lib_target} -arch arm" )
117- endif ()
61+ elseif (CC_TARGET_OS_OSX)
62+ if (CC_TARGETS_X86)
63+ set (lib_target "${lib_target} -arch i386" )
64+ elseif (CC_TARGETS_ARM)
65+ set (lib_target "${lib_target} -arch arm" )
11866 endif ()
67+ endif ()
11968
120- target_link_libraries (ChakraCore
121- ${lib_target}
122- ${CC_LTO_ENABLED}
123- )
69+ target_link_libraries (ChakraCore
70+ ${lib_target}
71+ ${CC_LTO_ENABLED}
72+ )
12473
125- if (NOT CC_XCODE_PROJECT)
126- # Post build step to copy the built shared library
127- # to out/{BUILD_TYPE}/ (or whatever the CMakeBuildDir is)
128- add_custom_command (TARGET ChakraCore POST_BUILD
129- COMMAND ${CMAKE_COMMAND} -E copy_if_different
130- "${CHAKRACORE_BINARY_DIR} /bin/ChakraCore/libChakraCore.${DYN_LIB_EXT} "
131- ${CHAKRACORE_BINARY_DIR} /
132- )
133- endif ()
74+ if (NOT CC_XCODE_PROJECT)
75+ # Post build step to copy the built shared library
76+ # to out/{BUILD_TYPE}/ (or whatever the CMakeBuildDir is)
77+ add_custom_command (TARGET ChakraCore POST_BUILD
78+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
79+ "${CHAKRACORE_BINARY_DIR} /bin/ChakraCore/libChakraCore.${DYN_LIB_EXT} "
80+ ${CHAKRACORE_BINARY_DIR} /
81+ )
13482endif ()
0 commit comments