reactos/dll/shellext/netshell/CMakeLists.txt
Jérôme Gardou d6ea8659c8 [CMAKE] Get rid of the set_cpp macro
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
2020-10-20 21:44:54 +02:00

48 lines
1.2 KiB
CMake

project(SHELL)
if(NOT MSVC)
# HACK: this should be enabled globally!
add_compile_flags_language("-std=c++11 -Wshadow" "CXX")
endif()
remove_definitions(-D_WIN32_WINNT=0x502)
add_definitions(-D_WIN32_WINNT=0x600)
add_definitions(
-D_ATL_NO_EXCEPTIONS)
include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/atl)
add_definitions(-D_NETSHELL_)
spec2def(netshell.dll netshell.spec)
list(APPEND SOURCE
netshell.cpp
shfldr_netconnect.cpp
enumlist.cpp
connectmanager.cpp
lanconnectui.cpp
lanstatusui.cpp
setup.cpp)
list(APPEND PCH_SKIP_SOURCE
${CMAKE_CURRENT_BINARY_DIR}/netshell_stubs.c)
file(GLOB netshell_rc_deps res/*.*)
add_rc_deps(netshell.rc ${netshell_rc_deps})
add_library(netshell MODULE
${SOURCE}
${PCH_SKIP_SOURCE}
netshell.rc
${CMAKE_CURRENT_BINARY_DIR}/netshell.def)
set_module_type(netshell win32dll UNICODE)
target_link_libraries(netshell uuid wine cpprt)
add_delay_importlibs(netshell ole32 oleaut32 shlwapi shell32)
add_importlibs(netshell version iphlpapi gdi32 user32 advapi32 setupapi ws2_32 comctl32 msvcrt kernel32 ntdll)
add_pch(netshell precomp.h "${PCH_SKIP_SOURCE}")
add_cd_file(TARGET netshell DESTINATION reactos/system32 FOR all)