reactos/dll/shellext/zipfldr/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

55 lines
1.3 KiB
CMake

if(NOT MSVC)
# HACK: this should be enabled globally!
add_compile_flags_language("-std=c++11" "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/include/reactos/libs/zlib
${REACTOS_SOURCE_DIR}/sdk/lib/atl
${REACTOS_SOURCE_DIR}/sdk/lib/3rdparty/zlib/contrib)
spec2def(zipfldr.dll zipfldr.spec ADD_IMPORTLIB)
list(APPEND SOURCE
zipfldr.cpp
zippidl.cpp
zippidl.hpp
IZip.hpp
CConfirmReplace.cpp
CExplorerCommand.cpp
CEnumZipContents.cpp
CFolderViewCB.cpp
CSendToZip.cpp
CZipCreator.cpp
CZipEnumerator.hpp
CZipExtract.cpp
CZipFolder.hpp
CZipPassword.cpp
Debug.cpp
zipfldr.spec
precomp.h
resource.h)
add_library(zipfldr MODULE
${SOURCE}
${ZLIB_SOURCE}
zipfldr.rc
${CMAKE_CURRENT_BINARY_DIR}/zipfldr.def)
set_module_type(zipfldr win32dll UNICODE)
target_link_libraries(zipfldr minizip zlib uuid cpprt)
set_target_cpp_properties(zipfldr WITH_EXCEPTIONS)
add_importlibs(zipfldr oleaut32 ole32 shlwapi comctl32 shell32 user32 advapi32 msvcrt kernel32 ntdll)
add_pch(zipfldr precomp.h SOURCE)
add_cd_file(TARGET zipfldr DESTINATION reactos/system32 FOR all)