efa55e40ed
Export the following missing symbols: ``` void * __ptr64 __cdecl operator new(unsigned __int64,struct std::nothrow_t const & __ptr64) void * __ptr64 __cdecl operator new[](unsigned __int64,struct std::nothrow_t const & __ptr64) ``` and ``` void * __cdecl operator new[](unsigned int,struct std::nothrow_t const &) void * __cdecl operator new(unsigned int,struct std::nothrow_t const &) ``` Fixes root-project/cling#442
111 lines
3.6 KiB
CMake
111 lines
3.6 KiB
CMake
#------------------------------------------------------------------------------
|
|
# CLING - the C++ LLVM-based InterpreterG :)
|
|
#
|
|
# This file is dual-licensed: you can choose to license it under the University
|
|
# of Illinois Open Source License or the GNU Lesser General Public License. See
|
|
# LICENSE.TXT for details.
|
|
#------------------------------------------------------------------------------
|
|
|
|
# Keep symbols for JIT resolution
|
|
set(LLVM_NO_DEAD_STRIP 1)
|
|
|
|
set(LLVM_LINK_COMPONENTS Support)
|
|
if(BUILD_SHARED_LIBS)
|
|
set(LIBS
|
|
|
|
clangFrontendTool
|
|
|
|
clingInterpreter
|
|
clingMetaProcessor
|
|
clingUserInterface
|
|
clingUtils
|
|
)
|
|
add_cling_executable(cling
|
|
cling.cpp
|
|
)
|
|
else()
|
|
set(LIBS
|
|
clangASTMatchers
|
|
clangFrontendTool
|
|
|
|
clingUserInterface
|
|
)
|
|
add_cling_executable(cling
|
|
cling.cpp
|
|
$<TARGET_OBJECTS:obj.clingInterpreter>
|
|
$<TARGET_OBJECTS:obj.clingMetaProcessor>
|
|
$<TARGET_OBJECTS:obj.clingUtils>
|
|
)
|
|
endif(BUILD_SHARED_LIBS)
|
|
|
|
set_target_properties(cling
|
|
PROPERTIES ENABLE_EXPORTS 1)
|
|
|
|
if(MSVC)
|
|
set_target_properties(cling PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS 1)
|
|
|
|
# RTTI/C++ symbols
|
|
set(cling_exports ${cling_exports} ??_7type_info@@6B@
|
|
?__type_info_root_node@@3U__type_info_node@@A
|
|
?nothrow@std@@3Unothrow_t@1@B
|
|
)
|
|
|
|
# Compiler added symbols for static variables. NOT for VStudio < 2015
|
|
set(cling_exports ${cling_exports} _Init_thread_abort _Init_thread_epoch
|
|
_Init_thread_footer _Init_thread_header _tls_index
|
|
)
|
|
|
|
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
|
# new/delete variants needed when linking to static msvc runtime (esp. Debug)
|
|
set(cling_exports ${cling_exports}
|
|
??2@YAPEAX_K@Z
|
|
??3@YAXPEAX@Z
|
|
??_U@YAPEAX_K@Z
|
|
??_V@YAXPEAX@Z
|
|
??3@YAXPEAX_K@Z
|
|
??2@YAPEAX_KAEBUnothrow_t@std@@@Z
|
|
??_U@YAPEAX_KAEBUnothrow_t@std@@@Z
|
|
??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z
|
|
??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@M@Z
|
|
??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@N@Z
|
|
??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEBX@Z
|
|
??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z
|
|
??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z
|
|
??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@PEBD@Z
|
|
?_Facet_Register@std@@YAXPEAV_Facet_base@1@@Z
|
|
)
|
|
else()
|
|
set(cling_exports ${cling_exports}
|
|
??2@YAPAXI@Z
|
|
??3@YAXPAX@Z
|
|
??3@YAXPAXI@Z
|
|
??_U@YAPAXI@Z
|
|
??_V@YAXPAX@Z
|
|
??_V@YAXPAXI@Z
|
|
??2@YAPAXIABUnothrow_t@std@@@Z
|
|
??_U@YAPAXIABUnothrow_t@std@@@Z
|
|
??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@H@Z
|
|
??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@M@Z
|
|
??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@N@Z
|
|
??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@PBX@Z
|
|
??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z
|
|
??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@D@Z
|
|
??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z
|
|
?_Facet_Register@std@@YAXPAV_Facet_base@1@@Z
|
|
)
|
|
endif()
|
|
|
|
# List to '/EXPORT:sym0 /EXPORT:sym1 /EXPORT:sym2 ...'
|
|
foreach(sym ${cling_exports})
|
|
set(cling_link_str "${cling_link_str} /EXPORT:${sym}")
|
|
endforeach(sym ${cling_exports})
|
|
|
|
set_property(TARGET cling APPEND_STRING PROPERTY LINK_FLAGS ${cling_link_str})
|
|
|
|
endif(MSVC)
|
|
|
|
target_link_libraries(cling PUBLIC ${LIBS})
|
|
|
|
install(TARGETS cling
|
|
RUNTIME DESTINATION bin)
|