[CMake] Find wxWidgets built through MSYS

Kirk Joppy kirk.joppy at gmail.com
Sat Aug 24 19:23:06 EDT 2013


I am trying to build a project that uses wxWidgets. I'm using MinGW on
a Windows7 system.

I have compiled wxWidgets successfully - small test applications
compile and run correctly. I did the build and installation through
MSYS. The relevant results of this are

1. I have a Unix-like file tree for wx widgets: headers in
H:\MinGW-libs\include\wx-2.8\wx, libs in H:\MinGW-libs\lib, and a few
files including wxrc.exe in H:\MinGW-libs\bin.
2. The libs are .a files.

(I have appropriately modified the gcc specs file such that
H:\MinGW-libs\include and H:\MinGW-libs\lib are searched by default)

Now I would like to build a larger project that depends on wxWidgets.
Using the CMakeLists.txt file attached to this email I get an error
message when I try to invoke the "configure" button in the CMake gui:

CMake Error at G:/CMake-2.8/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:108
(message):
Could NOT find wxWidgets (missing: wxWidgets_FOUND)
Call Stack (most recent call first):
G:/CMake-2.8/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:315
(_FPHSA_FAILURE_MESSAGE)
G:/CMake-2.8/share/cmake-2.8/Modules/FindwxWidgets.cmake:831
(FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:10 (find_package)

I understand that I maybe need to specify wxWidgets_ROOT_DIR. Given
the style of my build what directory should that be? Previous posts to
this lists related to this issue have been helpful but have not
entirely answered my question.

Regards,
Kjoppy
-------------- next part --------------
cmake_minimum_required(VERSION 2.6)

project(MSE)

set(Boost_USE_STATIC_LIBS   ON)
set(Boost_USE_MULTITHREADED ON)
find_package(Boost REQUIRED COMPONENTS regex system thread date_time chrono)
include_directories(SYSTEM ${Boost_INCLUDE_DIRS})

find_package(wxWidgets REQUIRED COMPONENTS core base media html net)
include(${wxWidgets_USE_FILE})

find_package(HUNSPELL REQUIRED)
include_directories(SYSTEM ${HUNSPELL_INCLUDE_DIRS})

message("Hunspell: " ${HUNSPELL_INCLUDE_DIRS})

if(WIN32)
	add_definitions(-D__WXMSW__)
	set(RESOURCE_FILES resource/msw/mse.rc)
endif(WIN32)

include_directories(SYSTEM ${CMAKE_CURRENT_SOURCE_DIR})

set(CLI_FILES
	cli/cli_main.cpp
	cli/cli_main.hpp
	cli/text_io_handler.cpp
	cli/text_io_handler.hpp)
source_group(cli FILES ${CLI_FILES})

set(DATA_ACTION_FILES
	data/action/generic.hpp
	data/action/keyword.cpp
	data/action/keyword.hpp
	data/action/set.cpp
	data/action/set.hpp
	data/action/symbol.cpp
	data/action/symbol.hpp
	data/action/symbol_part.cpp
	data/action/symbol_part.hpp
	data/action/value.cpp
	data/action/value.hpp)
source_group(data\\action FILES ${DATA_ACTION_FILES})

set(DATA_AUX_FILES
	data/add_cards_script.cpp
	data/add_cards_script.hpp
	data/draw_what.hpp
	data/export_template.cpp
	data/export_template.hpp
	data/filter.hpp
	data/font.cpp
	data/font.hpp
	data/graph_type.hpp
	data/installer.cpp
	data/installer.hpp
	data/keyword.cpp
	data/keyword.hpp
	data/locale.cpp
	data/locale.hpp
	data/pack.cpp
	data/pack.hpp
	data/statistics.cpp
	data/statistics.hpp
	data/symbol_font.cpp
	data/symbol_font.hpp
	data/word_list.cpp
	data/word_list.hpp)
source_group(data\\aux FILES ${DATA_AUX_FILES})

set(DATA_BASE_FILES
	data/card.cpp
	data/card.hpp
	data/field.cpp
	data/field.hpp
	data/game.cpp
	data/game.hpp
	data/set.cpp
	data/set.hpp
	data/settings.cpp
	data/settings.hpp
	data/stylesheet.cpp
	data/stylesheet.hpp
	data/symbol.cpp
	data/symbol.hpp)
source_group(data\\base FILES ${DATA_BASE_FILES})

set(DATA_FIELD_FILES
	data/field/boolean.cpp
	data/field/boolean.hpp
	data/field/choice.cpp
	data/field/choice.hpp
	data/field/color.cpp
	data/field/color.hpp
	data/field/image.cpp
	data/field/image.hpp
	data/field/information.cpp
	data/field/information.hpp
	data/field/multiple_choice.cpp
	data/field/multiple_choice.hpp
	data/field/package_choice.cpp
	data/field/package_choice.hpp
	data/field/symbol.cpp
	data/field/symbol.hpp
	data/field/text.cpp
	data/field/text.hpp)
source_group(data\\filed FILES ${DATA_FIELD_FILES})

set(DATA_FORMAT_FILES
	data/format/apprentice.cpp
	data/format/clipboard.cpp
	data/format/clipboard.hpp
	data/format/formats.cpp
	data/format/formats.hpp
	data/format/html.cpp
	data/format/image.cpp
	data/format/image_to_symbol.cpp
	data/format/image_to_symbol.hpp
	data/format/mse1.cpp
	data/format/mse2.cpp
	data/format/mtg_editor.cpp
	data/format/mws.cpp)
source_group(data\\format FILES ${DATA_FORMAT_FILES})

set(GFX_FILES
	gfx/bezier.cpp
	gfx/bezier.hpp
	gfx/blend_image.cpp
	gfx/color.cpp
	gfx/color.hpp
	gfx/combine_image.cpp
	gfx/generated_image.cpp
	gfx/generated_image.hpp
	gfx/gfx.hpp
	gfx/image_effects.cpp
	gfx/mask_image.cpp
	gfx/polynomial.cpp
	gfx/polynomial.hpp
	gfx/resample_image.cpp
	gfx/resample_text.cpp
	gfx/rotate_image.cpp)
source_group(gfx FILES ${GFX_FILES})

set(GUI_CONTROL_FILES
	gui/control/card_editor.cpp
	gui/control/card_editor.hpp
	gui/control/card_list.cpp
	gui/control/card_list.hpp
	gui/control/card_list_column_select.cpp
	gui/control/card_list_column_select.hpp
	gui/control/card_viewer.cpp
	gui/control/card_viewer.hpp
	gui/control/filter_ctrl.cpp
	gui/control/filter_ctrl.hpp
	gui/control/filtered_card_list.cpp
	gui/control/filtered_card_list.hpp
	gui/control/gallery_list.cpp
	gui/control/gallery_list.hpp
	gui/control/graph.cpp
	gui/control/graph.hpp
	gui/control/image_card_list.cpp
	gui/control/image_card_list.hpp
	gui/control/item_list.cpp
	gui/control/item_list.hpp
	gui/control/keyword_list.cpp
	gui/control/keyword_list.hpp
	gui/control/native_look_editor.cpp
	gui/control/native_look_editor.hpp
	gui/control/package_list.cpp
	gui/control/package_list.hpp
	gui/control/select_card_list.cpp
	gui/control/select_card_list.hpp
	gui/control/text_ctrl.cpp
	gui/control/text_ctrl.hpp
	gui/control/tree_list.cpp
	gui/control/tree_list.hpp)
source_group(gui\\control FILES ${GUI_CONTROL_FILES})

set(GUI_SET_FILES
	gui/set/cards_panel.cpp
	gui/set/cards_panel.hpp
	gui/set/console_panel.cpp
	gui/set/console_panel.hpp
	gui/set/keywords_panel.cpp
	gui/set/keywords_panel.hpp
	gui/set/panel.cpp
	gui/set/panel.hpp
	gui/set/random_pack_panel.cpp
	gui/set/random_pack_panel.hpp
	gui/set/set_info_panel.cpp
	gui/set/set_info_panel.hpp
	gui/set/stats_panel.cpp
	gui/set/stats_panel.hpp
	gui/set/style_panel.cpp
	gui/set/style_panel.hpp
	gui/set/window.cpp
	gui/set/window.hpp)
source_group(gui\\set FILES ${GUI_SET_FILES})

set(GUI_SYMBOL_FILES
	gui/symbol/basic_shape_editor.cpp
	gui/symbol/basic_shape_editor.hpp
	gui/symbol/control.cpp
	gui/symbol/control.hpp
	gui/symbol/editor.cpp
	gui/symbol/editor.hpp
	gui/symbol/part_list.cpp
	gui/symbol/part_list.hpp
	gui/symbol/point_editor.cpp
	gui/symbol/point_editor.hpp
	gui/symbol/select_editor.cpp
	gui/symbol/select_editor.hpp
	gui/symbol/selection.cpp
	gui/symbol/selection.hpp
	gui/symbol/symmetry_editor.cpp
	gui/symbol/symmetry_editor.hpp
	gui/symbol/window.cpp
	gui/symbol/window.hpp)
source_group(gui\\symbol FILES ${GUI_SYMBOL_FILES})

set(GUI_VALUE_FILES
	gui/value/choice.cpp
	gui/value/choice.hpp
	gui/value/color.cpp
	gui/value/color.hpp
	gui/value/editor.cpp
	gui/value/editor.hpp
	gui/value/image.cpp
	gui/value/image.hpp
	gui/value/information.cpp
	gui/value/information.hpp
	gui/value/multiple_choice.cpp
	gui/value/multiple_choice.hpp
	gui/value/package_choice.cpp
	gui/value/package_choice.hpp
	gui/value/symbol.cpp
	gui/value/symbol.hpp
	gui/value/text.cpp
	gui/value/text.hpp)
source_group(gui\\value FILES ${GUI_VALUE_FILES})

set(GUI_FILES
	gui/about_window.cpp
	gui/about_window.hpp
	gui/auto_replace_window.cpp
	gui/auto_replace_window.hpp
	gui/card_select_window.cpp
	gui/card_select_window.hpp
	gui/drop_down_list.cpp
	gui/drop_down_list.hpp
	gui/html_export_window.cpp
	gui/html_export_window.hpp
	gui/icon_menu.cpp
	gui/icon_menu.hpp
	gui/image_slice_window.cpp
	gui/image_slice_window.hpp
	gui/images_export_window.cpp
	gui/images_export_window.hpp
	gui/new_window.cpp
	gui/new_window.hpp
	gui/package_update_list.cpp
	gui/package_update_list.hpp
	gui/packages_window.cpp
	gui/packages_window.hpp
	gui/preferences_window.cpp
	gui/preferences_window.hpp
	gui/print_window.cpp
	gui/print_window.hpp
	gui/profiler_window.cpp
	gui/thumbnail_thread.cpp
	gui/thumbnail_thread.hpp
	gui/update_checker.cpp
	gui/update_checker.hpp
	gui/util.cpp
	gui/util.hpp
	gui/welcome_window.cpp
	gui/welcome_window.hpp)
source_group(gui FILES ${GUI_FILES})

set(RENDER_CARD_FILES
	render/card/viewer.cpp
	render/card/viewer.hpp)
source_group(render\\card FILES ${RENDER_CARD_FILES})

set(RENDER_SYMBOL_FILES
	render/symbol/filter.cpp
	render/symbol/filter.hpp
	render/symbol/viewer.cpp
	render/symbol/viewer.hpp)
source_group(render\\symbol FILES ${RENDER_SYMBOL_FILES})

set(RENDER_TEXT_FILES
	render/text/compound.cpp
	render/text/element.cpp
	render/text/element.hpp
	render/text/font.cpp
	render/text/symbol.cpp
	render/text/viewer.cpp
	render/text/viewer.hpp)
source_group(render\\text FILES ${RENDER_TEXT_FILES})

set(RENDER_VALUE_FILES
	render/value/choice.cpp
	render/value/choice.hpp
	render/value/color.cpp
	render/value/color.hpp
	render/value/image.cpp
	render/value/image.hpp
	render/value/information.cpp
	render/value/information.hpp
	render/value/multiple_choice.cpp
	render/value/multiple_choice.hpp
	render/value/package_choice.cpp
	render/value/package_choice.hpp
	render/value/symbol.cpp
	render/value/symbol.hpp
	render/value/text.cpp
	render/value/text.hpp
	render/value/viewer.cpp
	render/value/viewer.hpp)
source_group(render\\value FILES ${RENDER_VALUE_FILES})

set(SCRIPT_FUNCTIONS_FILES
	script/functions/basic.cpp
	script/functions/construction.cpp
	script/functions/editor.cpp
	script/functions/english.cpp
	script/functions/export.cpp
	script/functions/functions.hpp
	script/functions/image.cpp
	script/functions/regex.cpp
	script/functions/spelling.cpp
	script/functions/util.hpp)
source_group(script\\functions FILES ${SCRIPT_FUNCTIONS_FILES})

set(SCRIPT_FILES
	script/context.cpp
	script/context.hpp
	script/dependency.cpp
	script/dependency.hpp
	script/image.cpp
	script/image.hpp
	script/parser.cpp
	script/parser.hpp
	script/profiler.cpp
	script/profiler.hpp
	script/script.cpp
	script/script.hpp
	script/script_manager.cpp
	script/script_manager.hpp
	script/scriptable.cpp
	script/scriptable.hpp
	script/to_value.hpp
	script/value.cpp
	script/value.hpp)
source_group(script FILES ${SCRIPT_FILES})

set(UTIL_IO_FILES
	util/io/get_member.cpp
	util/io/get_member.hpp
	util/io/package.cpp
	util/io/package.hpp
	util/io/package_manager.cpp
	util/io/package_manager.hpp
	util/io/reader.cpp
	util/io/reader.hpp
	util/io/writer.cpp
	util/io/writer.hpp)
source_group(util\\io FILES ${UTIL_IO_FILES})

set(UTIL_VCS_FILES
	util/vcs/subversion.cpp
	util/vcs/subversion.hpp)
source_group(util\\vcs FILES ${UTIL_VCS_FILES})

set(UTIL_FILES
	util/action_stack.cpp
	util/action_stack.hpp
	util/age.cpp
	util/age.hpp
	util/alignment.cpp
	util/alignment.hpp
	util/angle.hpp
	util/atomic.hpp
	util/defaultable.hpp
	util/delayed_index_maps.hpp
	util/dynamic_arg.hpp
	util/error.cpp
	util/error.hpp
	util/file_utils.cpp
	util/file_utils.hpp
	util/find_replace.hpp
	util/for_each.hpp
	util/index_map.hpp
	util/locale.hpp
	util/order_cache.hpp
	util/platform.hpp
	util/prec.hpp
	util/real_point.hpp
	util/reflect.hpp
	util/regex.cpp
	util/regex.hpp
	util/rotation.cpp
	util/rotation.hpp
	util/smart_ptr.hpp
	util/spec_sort.cpp
	util/spec_sort.hpp
	util/spell_checker.cpp
	util/spell_checker.hpp
	util/string.cpp
	util/string.hpp
	util/tagged_string.cpp
	util/tagged_string.hpp
	util/vcs.cpp
	util/vcs.hpp
	util/vector2d.hpp
	util/version.cpp
	util/version.hpp
	util/window_id.hpp)
source_group(util FILES ${UTIL_FILES})

set(FILES
	code_template.cpp
	code_template.hpp
	main.cpp)

add_executable(mse
	${CLI_FILES}
	${DATA_ACTION_FILES}
	${DATA_AUX_FILES}
	${DATA_BASE_FILES}
	${DATA_FIELD_FILES}
	${DATA_FORMAT_FILES}
	${GFX_FILES}
	${GUI_CONTROL_FILES}
	${GUI_SET_FILES}
	${GUI_SYMBOL_FILES}
	${GUI_VALUE_FILES}
	${GUI_FILES}
	${RENDER_CARD_FILES}
	${RENDER_SYMBOL_FILES}
	${RENDER_TEXT_FILES}
	${RENDER_VALUE_FILES}
	${SCRIPT_FUNCTIONS_FILES}
	${SCRIPT_FILES}
	${UTIL_IO_FILES}
	${UTIL_VCS_FILES}
	${UTIL_FILES}
	${FILES}
	${RESOURCE_FILES})
	
if(WIN32)
	set_property(TARGET mse PROPERTY WIN32_EXECUTABLE ON)
	
endif(WIN32)

target_link_libraries(mse ${Boost_LIBRARIES})
target_link_libraries(mse ${wxWidgets_LIBRARIES})
target_link_libraries(mse ${HUNSPELL_LIBRARIES})

message("${Boost_LIBRARIES} ${wxWidgets_LIBRARIES} ${HUNSPELL_LIBRARIES}")


More information about the CMake mailing list