I can't figure out how to get CMake to build my code with setting -D_UNICODE 
and -DUNICODE.  I don't want those manifest constants set, but they appear in 
the generated DependInfo.cmake files when generating code for NMake Makefiles:

SET(CMAKE_CXX_COMPILER_ID "MSVC")

# Preprocessor definitions for this target.
SET(CMAKE_TARGET_DEFINITIONS
  "NT"
  "_UNICODE"
  "UNICODE"
  "_CRT_SECURE_NO_WARNINGS"
  "_SCL_SECURE_NO_WARNINGS"
  "NOMINMAX"
  "NT"
  "WIN32_LEAN_AND_MEAN"
  )

The definitions following those for Unicode are from this command in my 
CMakeLists.txt:

add_definitions(
   /D_CRT_SECURE_NO_WARNINGS
   /D_SCL_SECURE_NO_WARNINGS
   /DNOMINMAX
   /DNT
   /DWIN32_LEAN_AND_MEAN)

I've tried every which way I can think of to remove those definitions, but 
nothing has worked:

 - get_target_property() finds nothing for COMPILE_DEFINITIONS or DEFINITIONS.

 - add_definitions(/U_UNICODE /UUNICODE) doesn't work because those precede the 
-D_UNICODE -DUNICODE arguments generated by the above. (CMake "helpfully" sorts 
the flags, it seems.  That's a bug, if you ask me.  Order dependent flags, at 
least, should appear in the order the user gives them.)

 - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /U_UNICODE /UUNICODE") doesn't work. 
 (I could probably force an update to the cache, but then that would apply 
globally and not to the current project.

How can I convince CMake to remove those definitions from my builds?


_____
Rob Stewart
Software Engineer
Dev Tools & Components
Susquehanna International Group, LLP



________________________________

IMPORTANT: The information contained in this email and/or its attachments is 
confidential. If you are not the intended recipient, please notify the sender 
immediately by reply and immediately delete this message and all its 
attachments. Any review, use, reproduction, disclosure or dissemination of this 
message or any attachment by an unintended recipient is strictly prohibited. 
Neither this message nor any attachment is intended as or should be construed 
as an offer, solicitation or recommendation to buy or sell any security or 
other financial instrument. Neither the sender, his or her employer nor any of 
their respective affiliates makes any warranties as to the completeness or 
accuracy of any of the information contained herein or that this message or any 
of its attachments is free of viruses.
--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to