Fix the Vala module for CMake

It failed to depend on local vapis.  At least I understand it again.
This commit is contained in:
2016-10-18 02:06:09 +02:00
parent 71617d4b14
commit 8052b2b754
5 changed files with 160 additions and 200 deletions

View File

@@ -33,30 +33,25 @@ pkg_check_modules (dependencies REQUIRED gtk+-3.0 sqlite3 x11 xext xextproto)
# Precompile Vala sources
include (ValaPrecompile)
set (HEADER_PATH "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.h")
set (CONFIG_PATH "${PROJECT_BINARY_DIR}/config.vala")
configure_file (${PROJECT_SOURCE_DIR}/config.vala.in ${CONFIG_PATH})
set (config_path "${PROJECT_BINARY_DIR}/config.vala")
configure_file (${PROJECT_SOURCE_DIR}/config.vala.in "${config_path}")
# I'm not sure what this was about, look at slovnik-gui for more comments
set (SYMBOLS_PATH "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.def")
# I'm not sure what this was about, look at slovnik-gui for more comments;
# seems to be so that symbols are exported for GModule to see
set (symbols_path "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.def")
vala_init (${PROJECT_NAME}
PACKAGES gmodule-2.0 gio-2.0 gtk+-3.0 gee-0.8 sqlite3 x11
CUSTOM_VAPIS ${PROJECT_SOURCE_DIR}/xsync.vapi)
vala_add (${PROJECT_NAME} ${CONFIG_PATH})
vala_add (${PROJECT_NAME} ${PROJECT_NAME}.vala DEPENDS config)
vala_finish (${PROJECT_NAME}
SOURCES project_VALA_SOURCES
set (project_VALA_SOURCES ${config_path} ${PROJECT_NAME}.vala xsync.vapi)
vala_precompile (${project_VALA_SOURCES}
OUTPUTS project_VALA_C
GENERATE_HEADER ${HEADER_PATH}
GENERATE_SYMBOLS ${SYMBOLS_PATH})
HEADER ${PROJECT_NAME}.h
SYMBOLS ${symbols_path}
PACKAGES gmodule-2.0 gio-2.0 gtk+-3.0 gee-0.8 sqlite3 x11)
# Include Vala sources as header files, so they appear in the IDE
# but CMake doesn't try to compile them directly
set_source_files_properties (${project_VALA_SOURCES}
PROPERTIES HEADER_FILE_ONLY TRUE)
set (project_SOURCES ${project_VALA_SOURCES} ${project_VALA_C} ${SYMBOLS_PATH})
set (project_SOURCES ${project_VALA_SOURCES} ${project_VALA_C} ${symbols_path})
# Build the executable and install it
include_directories (${dependencies_INCLUDE_DIRS})