You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.9 KiB

18 years ago
  1. # resource compilation for mingw (http://www.cmake.org/Bug/view.php?id=4068)
  2. macro(dbg_msg _MSG)
  3. # message(STATUS "${CMAKE_CURRENT_LIST_FILE}(${CMAKE_CURRENT_LIST_LINE}): ${_MSG}")
  4. endmacro(dbg_msg)
  5. macro(mingw_resource_compiler _NAME)
  6. # Resource compiler name.
  7. if(NOT DEFINED CMAKE_RC_COMPILER)
  8. set(CMAKE_RC_COMPILER windres.exe)
  9. endif(NOT DEFINED CMAKE_RC_COMPILER)
  10. dbg_msg("CMAKE_RC_COMPILER: ${CMAKE_RC_COMPILER}")
  11. # Input file.
  12. set(_IN "${CMAKE_SOURCE_DIR}/resources/msw/${_NAME}.rc")
  13. dbg_msg("_IN: ${_IN}")
  14. # Output file.
  15. set(_OUT "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${_NAME}.dir/${_NAME}_rc.obj")
  16. dbg_msg("_OUT: ${_OUT}")
  17. # Include directories.
  18. set(_WINDRES_INCLUDE_DIRS -I${CMAKE_CURRENT_SOURCE_DIR})
  19. foreach(wx_include_dir ${wxWidgets_INCLUDE_DIRS})
  20. set(_WINDRES_INCLUDE_DIRS ${_WINDRES_INCLUDE_DIRS} -I${wx_include_dir})
  21. endforeach(wx_include_dir ${wxWidgets_INCLUDE_DIRS})
  22. foreach(_mingw_rc_include_dir ${mingw_resource_compiler_INCLUDE_DIRS})
  23. set(_WINDRES_INCLUDE_DIRS ${_WINDRES_INCLUDE_DIRS} -I${_mingw_rc_include_dir})
  24. endforeach()
  25. dbg_msg("_WINDRES_INCLUDE_DIRS: ${_WINDRES_INCLUDE_DIRS}")
  26. foreach(_mingw_rc_define ${mingw_resource_compiler_DEFINES})
  27. set(_WINDRES_DEFINES ${_WINDRES_DEFINES} -D${_mingw_rc_define})
  28. endforeach()
  29. dbg_msg("_WINDRES_DEFINES: ${_WINDRES_DEFINES}")
  30. # windres arguments.
  31. set(_ARGS ${_WINDRES_INCLUDE_DIRS} ${_WINDRES_DEFINES} -i${_IN} -o${_OUT})
  32. dbg_msg("_ARGS: ${_ARGS}")
  33. # Compile resource file.
  34. add_custom_command(OUTPUT ${_OUT}
  35. COMMAND ${CMAKE_RC_COMPILER}
  36. ARGS ${_ARGS}
  37. COMMENT "Compiling ${_NAME}'s resource file"
  38. VERBATIM)
  39. # Set a NAME_RESOURCES variable
  40. string(TOUPPER ${_NAME} _NAME_UPPER)
  41. set(${_NAME_UPPER}_RESOURCES ${_OUT})
  42. dbg_msg("${_NAME_UPPER}_RESOURCES: ${${_NAME_UPPER}_RESOURCES}")
  43. endmacro(mingw_resource_compiler)