cmake.backbone/ValaLibCommonRules.cmake

77 lines
2.6 KiB
CMake
Raw Normal View History

2014-10-15 17:32:46 +04:00
INCLUDE (FindVala)
INCLUDE (UseVala)
2015-10-19 12:11:35 +03:00
INCLUDE (CFlagsCommonRules)
2014-10-15 17:32:46 +04:00
FIND_PACKAGE (PkgConfig REQUIRED)
2016-04-01 18:01:50 +03:00
IF (NOT LibNoApi)
SET (export_vaapi "--vapi=${LibName}-${MAJOR}.vapi")
SET (generate_header ${LibName}-${MAJOR})
ENDIF (NOT LibNoApi)
2014-10-15 17:32:46 +04:00
IF (WIN32)
IF (NOT LibIsPlugin)
SET (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/run") # Avoid of "dll not found" messages
ENDIF (NOT LibIsPlugin)
ENDIF (WIN32)
2014-10-15 17:32:46 +04:00
VALA_PRECOMPILE (VALA_C ${LibSources}
PACKAGES ${LibPackages}
OPTIONS ${LibValaOpts} ${VALA_DEBUG} ${export_vaapi} --abi-stability
2014-10-15 17:32:46 +04:00
CUSTOM_VAPIS ${LibCustomVapis}
GENERATE_VAPI
2016-04-01 18:01:50 +03:00
GENERATE_HEADER ${generate_header}
2014-10-15 17:32:46 +04:00
)
2017-12-19 08:23:53 +03:00
IF (NOT "${LibPkgModules}" STREQUAL "")
PKG_CHECK_MODULES (PKGS REQUIRED ${LibPkgModules})
ENDIF ()
2015-10-19 18:27:24 +03:00
INCLUDE_DIRECTORIES (${PKGS_INCLUDE_DIRS} ${CMAKE_BINARY_DIR}/po)
2014-10-15 17:32:46 +04:00
ADD_LIBRARY (${LibName} SHARED ${VALA_C} ${LibExtraSources})
2014-10-26 16:18:42 +03:00
ADD_DEFINITIONS (-DGETTEXT_PACKAGE="${PROJECT_LOWERCASE_NAME}-${MAJOR}")
2014-10-15 17:32:46 +04:00
TARGET_LINK_LIBRARIES (${LibName} ${PKGS_LIBRARIES} ${LibLinkLibs})
SET_TARGET_PROPERTIES (${LibName} PROPERTIES VERSION ${MAJOR}.${MINOR}.${PATCH})
SET_TARGET_PROPERTIES (${LibName} PROPERTIES SOVERSION ${MAJOR})
2016-04-01 18:01:50 +03:00
2014-10-15 17:32:46 +04:00
IF (WIN32)
SET_TARGET_PROPERTIES (${LibName} PROPERTIES PREFIX "" IMPORT_PREFIX ""
2015-10-12 20:18:51 +03:00
SUFFIX "-${MAJOR}.dll" IMPORT_SUFFIX "-${MAJOR}.dll.a")
2014-10-15 17:32:46 +04:00
ENDIF (WIN32)
2016-04-01 18:01:50 +03:00
SET (install_prefix "")
IF (LibIsPlugin)
SET (install_prefix "/${LibInstallPrefix}")
2016-04-01 18:01:50 +03:00
ENDIF (LibIsPlugin)
2018-02-13 23:13:01 +03:00
SET (lib "lib")
IF(UNIX)
IF("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
SET (lib "lib64")
ENDIF()
ENDIF(UNIX)
2018-02-13 23:13:01 +03:00
2016-04-01 18:01:50 +03:00
IF (UNIX)
2018-02-13 23:13:01 +03:00
SET (install_dest ${lib}${install_prefix})
2017-12-19 07:54:58 +03:00
#INCLUDE (GNUInstallDirs)
#SET (install_dest ${CMAKE_INSTALL_FULL_LIBDIR}${install_prefix})
2016-04-01 18:01:50 +03:00
ELSEIF (WIN32)
SET (install_dest bin${install_prefix})
ENDIF (UNIX)
2014-10-15 17:32:46 +04:00
IF (LibInstall)
2016-04-01 18:01:50 +03:00
IF (LibNoApi)
INSTALL (TARGETS ${LibName} RUNTIME DESTINATION ${install_dest}
LIBRARY DESTINATION ${install_dest})
ELSE (LibNoApi)
INSTALL (TARGETS ${LibName} RUNTIME DESTINATION ${install_dest}
LIBRARY DESTINATION ${install_dest}
2018-02-13 23:13:01 +03:00
ARCHIVE DESTINATION ${lib})
2016-04-01 18:01:50 +03:00
INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR}/${LibName}-${MAJOR}.h DESTINATION include)
INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR}/${LibName}-${MAJOR}.vapi DESTINATION share/vala/vapi)
ENDIF (LibNoApi)
2014-10-15 17:32:46 +04:00
ENDIF (LibInstall)
# Access to 'share' directory when debugging (Gettext, Glade, GSchema files, etc...)
2016-04-01 18:01:50 +03:00
IF (NOT LibIsPlugin)
EXECUTE_PROCESS (COMMAND ln -sf ${CMAKE_BINARY_DIR}/share -t ${CMAKE_CURRENT_BINARY_DIR}/..)
ENDIF (NOT LibIsPlugin)