mirror of
https://github.com/reactos/reactos.git
synced 2024-07-03 19:24:20 +00:00
![Jérôme Gardou](/assets/img/avatar_default.png)
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
26 lines
805 B
CMake
26 lines
805 B
CMake
|
|
list(APPEND SOURCE
|
|
Fraginator.cpp
|
|
MainDialog.cpp
|
|
ReportDialog.cpp)
|
|
|
|
list(APPEND UNFRAG_SOURCE
|
|
Unfrag.cpp
|
|
Defragment.cpp
|
|
DriveVolume.cpp)
|
|
|
|
add_executable(frag ${SOURCE} ${UNFRAG_SOURCE} Fraginator.rc)
|
|
target_link_libraries(frag cppstl)
|
|
set_target_cpp_properties(frag WITH_EXCEPTIONS)
|
|
set_module_type(frag win32gui UNICODE)
|
|
add_importlibs(frag user32 advapi32 shell32 comctl32 msvcrt kernel32 ntdll)
|
|
add_cd_file(TARGET frag DESTINATION reactos/system32 FOR all)
|
|
|
|
add_executable(unfrag ${UNFRAG_SOURCE})
|
|
target_link_libraries(unfrag cppstl)
|
|
set_target_cpp_properties(unfrag WITH_EXCEPTIONS)
|
|
target_compile_definitions(unfrag PRIVATE "_CUI_")
|
|
set_module_type(unfrag win32cui UNICODE)
|
|
add_importlibs(unfrag advapi32 msvcrt kernel32 ntdll)
|
|
add_cd_file(TARGET unfrag DESTINATION reactos/system32 FOR all)
|