mirror of
https://github.com/reactos/reactos.git
synced 2024-10-04 00:13:57 +00:00
d6ea8659c8
Instead of messing with global variables and the like, we introduce two target properties: - WITH_CXX_EXCEPTIONS: if you want to use C++ exceptions - WITH_CXX_RTTI: if you need RTTI in your module You can use the newly introduced set_target_cpp_properties function, with WITH_EXCEPTIONS and WITH_RTTI arguments We also introduce two libraries : - cpprt: for C++ runtime routines - cppstl: for the C++ standard template library NB: On GCC, this requires to create imported libraries with the related built-in libraries:libsupc++, limingwex, libstdc++ Finally, we manage the relevant flags with the ad-hoc generator expressions So, if you don't need exceptions, nor RTTI, nor use any runtime at all: you simply have nothing else to do than add your C++ file to your module
53 lines
1 KiB
CMake
53 lines
1 KiB
CMake
PROJECT(SHELL)
|
|
|
|
add_definitions(
|
|
-D_ATL_NO_EXCEPTIONS)
|
|
|
|
include_directories(
|
|
${REACTOS_SOURCE_DIR}/sdk/lib/atl)
|
|
|
|
spec2def(rshell.dll rshell.spec ADD_IMPORTLIB)
|
|
|
|
list(APPEND SOURCE
|
|
CQuickLaunchBand.cpp
|
|
misc.cpp
|
|
${CMAKE_CURRENT_BINARY_DIR}/rshell.def)
|
|
|
|
add_library(rshell MODULE ${SOURCE})
|
|
|
|
set_module_type(rshell win32dll UNICODE)
|
|
|
|
target_link_libraries(rshell
|
|
shellbars
|
|
shellmenu
|
|
shelldesktop
|
|
uuid
|
|
wine
|
|
cpprt)
|
|
|
|
add_importlibs(rshell
|
|
browseui
|
|
uxtheme
|
|
shlwapi
|
|
advapi32
|
|
shell32
|
|
comctl32
|
|
gdi32
|
|
ole32
|
|
user32
|
|
msvcrt
|
|
kernel32
|
|
ntdll)
|
|
|
|
add_custom_command(TARGET rshell POST_BUILD
|
|
COMMAND "${CMAKE_COMMAND}" -E copy
|
|
"$<TARGET_FILE:rshell>"
|
|
"$<TARGET_FILE_DIR:explorer>/$<TARGET_FILE_NAME:rshell>"
|
|
COMMENT "Copying to output directory")
|
|
|
|
add_custom_command(TARGET rshell POST_BUILD
|
|
COMMAND "${CMAKE_COMMAND}" -E copy
|
|
"$<TARGET_FILE:rshell>"
|
|
"$<TARGET_FILE_DIR:filebrowser>/$<TARGET_FILE_NAME:rshell>"
|
|
COMMENT "Copying to output directory")
|