forked from OpenCPN/OpenCPN
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
David Register
committed
Jun 20, 2011
1 parent
147618c
commit ef0a637
Showing
1 changed file
with
197 additions
and
192 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,192 +1,197 @@ | ||
##--------------------------------------------------------------------------- | ||
## Author: bdbcat aka. dsr (Dave Register) | ||
## Copyright: | ||
## License: wxWidgets License | ||
##--------------------------------------------------------------------------- | ||
|
||
|
||
# define minimum cmake version | ||
CMAKE_MINIMUM_REQUIRED(VERSION 2.6.2) | ||
# This should be 2.8.0 to have FindGTK2 module | ||
IF (COMMAND cmake_policy) | ||
CMAKE_POLICY(SET CMP0003 OLD) | ||
CMAKE_POLICY(SET CMP0005 OLD) | ||
CMAKE_POLICY(SET CMP0011 OLD) | ||
ENDIF (COMMAND cmake_policy) | ||
|
||
PROJECT(grib_pi) | ||
|
||
SET(PACKAGE_NAME grib_pi) | ||
SET(PLUGIN_SOURCE_DIR .) | ||
MESSAGE (STATUS "*** Building ${PACKAGE_NAME} ***") | ||
|
||
#SET(CMAKE_BUILD_TYPE Debug) | ||
|
||
IF (PREFIX) | ||
SET(CMAKE_INSTALL_PREFIX ${PREFIX}) | ||
ENDIF (PREFIX) | ||
|
||
SET(PARENT opencpn) | ||
SET(PREFIX_BIN bin) | ||
SET(PREFIX_INCLUDE include) | ||
SET(PREFIX_DATA share) | ||
SET(PREFIX_PARENTDATA ${PREFIX_DATA}/${PARENT}) | ||
|
||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/src) | ||
|
||
# require proper c++ | ||
#ADD_DEFINITIONS( "-Wall -ansi -pedantic -Wno-variadic-macros" ) | ||
#TODO: Should we use -fno-stack-protector | ||
# IF NOT DEBUGGING CFLAGS="-O2 -march=native" | ||
IF(NOT WIN32) | ||
ADD_DEFINITIONS( "-Wall -g -fexceptions -fvisibility=hidden" ) | ||
|
||
IF(NOT APPLE) | ||
SET(CMAKE_SHARED_LINKER_FLAGS "-Wl,-Bsymbolic") | ||
ELSE(NOT APPLE) | ||
SET(CMAKE_SHARED_LINKER_FLAGS "-Wl -undefined dynamic_lookup") | ||
ENDIF(NOT APPLE) | ||
|
||
ENDIF(NOT WIN32) | ||
|
||
# Add some definitions to satisfy MS | ||
IF(WIN32) | ||
ADD_DEFINITIONS(-D__MSVC__) | ||
ADD_DEFINITIONS(-D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_SECURE_NO_DEPRECATE) | ||
ENDIF(WIN32) | ||
|
||
|
||
#SET(wxWidgets_USE_LIBS base core net xml html adv) | ||
#SET(BUILD_SHARED_LIBS TRUE) | ||
#FIND_PACKAGE(wxWidgets REQUIRED) | ||
|
||
INCLUDE(${wxWidgets_USE_FILE}) | ||
|
||
FIND_PACKAGE(Gettext REQUIRED) | ||
|
||
# For convenience we define the sources as a variable. You can add | ||
# header files and cpp/c files and CMake will sort them out | ||
|
||
|
||
SET(SRC_GRIB | ||
src/grib_pi.h | ||
src/grib_pi.cpp | ||
src/grib.h | ||
src/grib.cpp | ||
src/icons.h | ||
src/icons.cpp | ||
src/GribReader.cpp | ||
src/GribRecord.cpp | ||
src/zuFile.cpp | ||
src/IsoLine.cpp | ||
) | ||
ADD_LIBRARY(${PACKAGE_NAME} SHARED ${SRC_GRIB}) | ||
|
||
IF(NOT UNIX) | ||
SET(SRC_BZIP | ||
src/bzip2/bzlib.c | ||
src/bzip2/blocksort.c | ||
src/bzip2/compress.c | ||
src/bzip2/crctable.c | ||
src/bzip2/decompress.c | ||
src/bzip2/huffman.c | ||
src/bzip2/randtable.c | ||
) | ||
ADD_LIBRARY(LIB_BZIP ${SRC_BZIP}) | ||
|
||
INCLUDE_DIRECTORIES(${PLUGIN_SOURCE_DIR}/src/zlib-1.2.3) | ||
INCLUDE_DIRECTORIES(${PLUGIN_SOURCE_DIR}/src/bzip2) | ||
ENDIF(NOT UNIX) | ||
|
||
IF(WIN32) | ||
SET(OPENCPN_IMPORT_LIB "../../${CMAKE_CFG_INTDIR}/${PARENT}") | ||
TARGET_LINK_LIBRARIES( ${PACKAGE_NAME} LIB_BZIP ${OPENCPN_IMPORT_LIB} ) | ||
ADD_DEPENDENCIES(${PACKAGE_NAME} ${PARENT}) | ||
ENDIF(WIN32) | ||
|
||
TARGET_LINK_LIBRARIES( ${PACKAGE_NAME} ${wxWidgets_LIBRARIES} ) | ||
|
||
IF(APPLE) | ||
FIND_PACKAGE(ZLIB REQUIRED) | ||
TARGET_LINK_LIBRARIES( ${PACKAGE_NAME} ${ZLIB_LIBRARIES} ) | ||
ENDIF(APPLE) | ||
|
||
|
||
|
||
|
||
IF(UNIX) | ||
INSTALL(TARGETS ${PACKAGE_NAME} RUNTIME LIBRARY DESTINATION ${PREFIX_PARENTDATA}/plugins) | ||
ENDIF(UNIX) | ||
|
||
IF(WIN32) | ||
INSTALL(TARGETS ${PACKAGE_NAME} RUNTIME DESTINATION "plugins") | ||
ENDIF(WIN32) | ||
|
||
# find src/ -name \*.cpp -or -name \*.c -or -name \*.h -or -name \*.hpp >po/POTFILES.in | ||
FIND_PROGRAM(GETTEXT_XGETTEXT_EXECUTABLE xgettext) | ||
IF (GETTEXT_XGETTEXT_EXECUTABLE) | ||
ADD_CUSTOM_COMMAND( | ||
OUTPUT po/${PACKAGE_NAME}.pot.dummy | ||
COMMAND ${GETTEXT_XGETTEXT_EXECUTABLE} --force-po --package-name=${PACKAGE_NAME} --package-version="${PACKAGE_VERSION}" --output=po/${PACKAGE_NAME}.pot --keyword=_ --width=80 --files-from=${CMAKE_CURRENT_SOURCE_DIR}/po/POTFILES.in | ||
DEPENDS po/POTFILES.in po/${PACKAGE_NAME}.pot | ||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} | ||
COMMENT "grib-pot-update [${PACKAGE_NAME}]: Generated pot file." | ||
) | ||
ADD_CUSTOM_TARGET(grib-pot-update COMMENT "grib-pot-update: Done." DEPENDS po/${PACKAGE_NAME}.pot.dummy) | ||
|
||
ENDIF(GETTEXT_XGETTEXT_EXECUTABLE ) | ||
|
||
MACRO(GETTEXT_UPDATE_PO _potFile) | ||
SET(_poFiles ${_potFile}) | ||
GET_FILENAME_COMPONENT(_absPotFile ${_potFile} ABSOLUTE) | ||
|
||
FOREACH (_currentPoFile ${ARGN}) | ||
GET_FILENAME_COMPONENT(_absFile ${_currentPoFile} ABSOLUTE) | ||
GET_FILENAME_COMPONENT(_poBasename ${_absFile} NAME_WE) | ||
|
||
ADD_CUSTOM_COMMAND( | ||
OUTPUT ${_absFile}.dummy | ||
COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --width=80 --strict --quiet --update --backup=none --no-location -s ${_absFile} ${_absPotFile} | ||
DEPENDS ${_absPotFile} ${_absFile} | ||
COMMENT "grib-po-update [${_poBasename}]: Updated po file." | ||
) | ||
|
||
SET(_poFiles ${_poFiles} ${_absFile}.dummy) | ||
|
||
ENDFOREACH (_currentPoFile ) | ||
|
||
ADD_CUSTOM_TARGET(grib-po-update COMMENT "grib-po-update: Done." DEPENDS ${_poFiles}) | ||
ENDMACRO(GETTEXT_UPDATE_PO) | ||
|
||
IF (GETTEXT_MSGMERGE_EXECUTABLE) | ||
FILE(GLOB PACKAGE_PO_FILES po/*.po) | ||
GETTEXT_UPDATE_PO(po/${PACKAGE_NAME}.pot ${PACKAGE_PO_FILES}) | ||
ENDIF(GETTEXT_MSGMERGE_EXECUTABLE) | ||
|
||
SET(_gmoFiles) | ||
MACRO(GETTEXT_BUILD_MO) | ||
FOREACH (_poFile ${ARGN}) | ||
GET_FILENAME_COMPONENT(_absFile ${_poFile} ABSOLUTE) | ||
GET_FILENAME_COMPONENT(_poBasename ${_absFile} NAME_WE) | ||
SET(_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_poBasename}.mo) | ||
|
||
ADD_CUSTOM_COMMAND( | ||
OUTPUT ${_gmoFile} | ||
COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} --check -o ${_gmoFile} ${_absFile} | ||
DEPENDS ${_absFile} | ||
COMMENT "grib-i18n [${_poBasename}]: Created mo file." | ||
) | ||
|
||
INSTALL(FILES ${_gmoFile} DESTINATION ${PREFIX_DATA}/locale/${_poBasename}/LC_MESSAGES RENAME opencpn-${PACKAGE_NAME}.mo ) | ||
SET(_gmoFiles ${_gmoFiles} ${_gmoFile}) | ||
ENDFOREACH (_poFile ) | ||
ENDMACRO(GETTEXT_BUILD_MO) | ||
|
||
if(GETTEXT_MSGFMT_EXECUTABLE) | ||
FILE(GLOB PACKAGE_PO_FILES po/*.po) | ||
GETTEXT_BUILD_MO(${PACKAGE_PO_FILES}) | ||
ADD_CUSTOM_TARGET(grib-i18n COMMENT "grib-i18n: Done." DEPENDS ${_gmoFiles}) | ||
#ADD_DEPENDENCIES(grib-i18n ${PACKAGE_PO_FILES}) | ||
ADD_DEPENDENCIES(${PACKAGE_NAME} grib-i18n) | ||
ENDIF(GETTEXT_MSGFMT_EXECUTABLE) | ||
|
||
##--------------------------------------------------------------------------- | ||
## Author: bdbcat aka. dsr (Dave Register) | ||
## Copyright: | ||
## License: wxWidgets License | ||
##--------------------------------------------------------------------------- | ||
|
||
|
||
# define minimum cmake version | ||
CMAKE_MINIMUM_REQUIRED(VERSION 2.6.2) | ||
# This should be 2.8.0 to have FindGTK2 module | ||
IF (COMMAND cmake_policy) | ||
CMAKE_POLICY(SET CMP0003 OLD) | ||
CMAKE_POLICY(SET CMP0005 OLD) | ||
CMAKE_POLICY(SET CMP0011 OLD) | ||
ENDIF (COMMAND cmake_policy) | ||
|
||
PROJECT(grib_pi) | ||
|
||
SET(PACKAGE_NAME grib_pi) | ||
SET(PLUGIN_SOURCE_DIR .) | ||
MESSAGE (STATUS "*** Building ${PACKAGE_NAME} ***") | ||
|
||
#SET(CMAKE_BUILD_TYPE Debug) | ||
|
||
IF (PREFIX) | ||
SET(CMAKE_INSTALL_PREFIX ${PREFIX}) | ||
ENDIF (PREFIX) | ||
|
||
SET(PARENT opencpn) | ||
SET(PREFIX_BIN bin) | ||
SET(PREFIX_INCLUDE include) | ||
SET(PREFIX_DATA share) | ||
SET(PREFIX_PARENTDATA ${PREFIX_DATA}/${PARENT}) | ||
|
||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/src) | ||
|
||
# require proper c++ | ||
#ADD_DEFINITIONS( "-Wall -ansi -pedantic -Wno-variadic-macros" ) | ||
#TODO: Should we use -fno-stack-protector | ||
# IF NOT DEBUGGING CFLAGS="-O2 -march=native" | ||
IF(NOT WIN32) | ||
ADD_DEFINITIONS( "-Wall -g -fexceptions -fvisibility=hidden" ) | ||
|
||
IF(NOT APPLE) | ||
SET(CMAKE_SHARED_LINKER_FLAGS "-Wl,-Bsymbolic") | ||
ELSE(NOT APPLE) | ||
SET(CMAKE_SHARED_LINKER_FLAGS "-Wl -undefined dynamic_lookup") | ||
ENDIF(NOT APPLE) | ||
|
||
ENDIF(NOT WIN32) | ||
|
||
# Add some definitions to satisfy MS | ||
IF(WIN32) | ||
ADD_DEFINITIONS(-D__MSVC__) | ||
ADD_DEFINITIONS(-D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_SECURE_NO_DEPRECATE) | ||
ENDIF(WIN32) | ||
|
||
|
||
#SET(wxWidgets_USE_LIBS base core net xml html adv) | ||
#SET(BUILD_SHARED_LIBS TRUE) | ||
#FIND_PACKAGE(wxWidgets REQUIRED) | ||
|
||
INCLUDE(${wxWidgets_USE_FILE}) | ||
|
||
FIND_PACKAGE(Gettext REQUIRED) | ||
|
||
# For convenience we define the sources as a variable. You can add | ||
# header files and cpp/c files and CMake will sort them out | ||
|
||
|
||
SET(SRC_GRIB | ||
src/grib_pi.h | ||
src/grib_pi.cpp | ||
src/grib.h | ||
src/grib.cpp | ||
src/icons.h | ||
src/icons.cpp | ||
src/GribReader.cpp | ||
src/GribRecord.cpp | ||
src/zuFile.cpp | ||
src/IsoLine.cpp | ||
) | ||
ADD_LIBRARY(${PACKAGE_NAME} SHARED ${SRC_GRIB}) | ||
|
||
IF(NOT UNIX) | ||
SET(SRC_BZIP | ||
src/bzip2/bzlib.c | ||
src/bzip2/blocksort.c | ||
src/bzip2/compress.c | ||
src/bzip2/crctable.c | ||
src/bzip2/decompress.c | ||
src/bzip2/huffman.c | ||
src/bzip2/randtable.c | ||
) | ||
ADD_LIBRARY(LIB_BZIP ${SRC_BZIP}) | ||
|
||
INCLUDE_DIRECTORIES(${PLUGIN_SOURCE_DIR}/src/zlib-1.2.3) | ||
INCLUDE_DIRECTORIES(${PLUGIN_SOURCE_DIR}/src/bzip2) | ||
ENDIF(NOT UNIX) | ||
|
||
IF(WIN32) | ||
SET(OPENCPN_IMPORT_LIB "../../${CMAKE_CFG_INTDIR}/${PARENT}") | ||
TARGET_LINK_LIBRARIES( ${PACKAGE_NAME} LIB_BZIP ${OPENCPN_IMPORT_LIB} ) | ||
ADD_DEPENDENCIES(${PACKAGE_NAME} ${PARENT}) | ||
ENDIF(WIN32) | ||
|
||
TARGET_LINK_LIBRARIES( ${PACKAGE_NAME} ${wxWidgets_LIBRARIES} ) | ||
|
||
IF(APPLE) | ||
FIND_PACKAGE(ZLIB REQUIRED) | ||
TARGET_LINK_LIBRARIES( ${PACKAGE_NAME} ${ZLIB_LIBRARIES} ) | ||
ENDIF(APPLE) | ||
|
||
IF(APPLE) | ||
INSTALL(TARGETS ${PACKAGE_NAME} RUNTIME LIBRARY DESTINATION ${CMAKE_BINARY_DIR}/OpenCPN.app/Contents/SharedSupport/plugins) | ||
ENDIF(APPLE) | ||
|
||
IF(UNIX AND NOT APPLE) | ||
INSTALL(TARGETS ${PACKAGE_NAME} RUNTIME LIBRARY DESTINATION ${PREFIX_PARENTDATA}/plugins) | ||
ENDIF(UNIX AND NOT APPLE) | ||
|
||
IF(WIN32) | ||
INSTALL(TARGETS ${PACKAGE_NAME} RUNTIME DESTINATION "plugins") | ||
ENDIF(WIN32) | ||
|
||
# find src/ -name \*.cpp -or -name \*.c -or -name \*.h -or -name \*.hpp >po/POTFILES.in | ||
FIND_PROGRAM(GETTEXT_XGETTEXT_EXECUTABLE xgettext) | ||
IF (GETTEXT_XGETTEXT_EXECUTABLE) | ||
ADD_CUSTOM_COMMAND( | ||
OUTPUT po/${PACKAGE_NAME}.pot.dummy | ||
COMMAND ${GETTEXT_XGETTEXT_EXECUTABLE} --force-po --package-name=${PACKAGE_NAME} --package-version="${PACKAGE_VERSION}" --output=po/${PACKAGE_NAME}.pot --keyword=_ --width=80 --files-from=${CMAKE_CURRENT_SOURCE_DIR}/po/POTFILES.in | ||
DEPENDS po/POTFILES.in po/${PACKAGE_NAME}.pot | ||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} | ||
COMMENT "grib-pot-update [${PACKAGE_NAME}]: Generated pot file." | ||
) | ||
ADD_CUSTOM_TARGET(grib-pot-update COMMENT "grib-pot-update: Done." DEPENDS po/${PACKAGE_NAME}.pot.dummy) | ||
|
||
ENDIF(GETTEXT_XGETTEXT_EXECUTABLE ) | ||
|
||
MACRO(GETTEXT_UPDATE_PO _potFile) | ||
SET(_poFiles ${_potFile}) | ||
GET_FILENAME_COMPONENT(_absPotFile ${_potFile} ABSOLUTE) | ||
|
||
FOREACH (_currentPoFile ${ARGN}) | ||
GET_FILENAME_COMPONENT(_absFile ${_currentPoFile} ABSOLUTE) | ||
GET_FILENAME_COMPONENT(_poBasename ${_absFile} NAME_WE) | ||
|
||
ADD_CUSTOM_COMMAND( | ||
OUTPUT ${_absFile}.dummy | ||
COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --width=80 --strict --quiet --update --backup=none --no-location -s ${_absFile} ${_absPotFile} | ||
DEPENDS ${_absPotFile} ${_absFile} | ||
COMMENT "grib-po-update [${_poBasename}]: Updated po file." | ||
) | ||
|
||
SET(_poFiles ${_poFiles} ${_absFile}.dummy) | ||
|
||
ENDFOREACH (_currentPoFile ) | ||
|
||
ADD_CUSTOM_TARGET(grib-po-update COMMENT "grib-po-update: Done." DEPENDS ${_poFiles}) | ||
ENDMACRO(GETTEXT_UPDATE_PO) | ||
|
||
IF (GETTEXT_MSGMERGE_EXECUTABLE) | ||
FILE(GLOB PACKAGE_PO_FILES po/*.po) | ||
GETTEXT_UPDATE_PO(po/${PACKAGE_NAME}.pot ${PACKAGE_PO_FILES}) | ||
ENDIF(GETTEXT_MSGMERGE_EXECUTABLE) | ||
|
||
SET(_gmoFiles) | ||
MACRO(GETTEXT_BUILD_MO) | ||
FOREACH (_poFile ${ARGN}) | ||
GET_FILENAME_COMPONENT(_absFile ${_poFile} ABSOLUTE) | ||
GET_FILENAME_COMPONENT(_poBasename ${_absFile} NAME_WE) | ||
SET(_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_poBasename}.mo) | ||
|
||
ADD_CUSTOM_COMMAND( | ||
OUTPUT ${_gmoFile} | ||
COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} --check -o ${_gmoFile} ${_absFile} | ||
DEPENDS ${_absFile} | ||
COMMENT "grib-i18n [${_poBasename}]: Created mo file." | ||
) | ||
|
||
IF(APPLE) | ||
INSTALL(FILES ${_gmoFile} DESTINATION ${CMAKE_BINARY_DIR}/OpenCPN.app/Contents/Resources/${_poBasename}.lproj RENAME opencpn-${PACKAGE_NAME}.mo ) | ||
ELSE(APPLE) | ||
INSTALL(FILES ${_gmoFile} DESTINATION ${PREFIX_DATA}/locale/${_poBasename}/LC_MESSAGES RENAME opencpn-${PACKAGE_NAME}.mo ) | ||
ENDIF(APPLE) | ||
SET(_gmoFiles ${_gmoFiles} ${_gmoFile}) | ||
ENDFOREACH (_poFile ) | ||
ENDMACRO(GETTEXT_BUILD_MO) | ||
|
||
if(GETTEXT_MSGFMT_EXECUTABLE) | ||
FILE(GLOB PACKAGE_PO_FILES po/*.po) | ||
GETTEXT_BUILD_MO(${PACKAGE_PO_FILES}) | ||
ADD_CUSTOM_TARGET(grib-i18n COMMENT "grib-i18n: Done." DEPENDS ${_gmoFiles}) | ||
#ADD_DEPENDENCIES(grib-i18n ${PACKAGE_PO_FILES}) | ||
ADD_DEPENDENCIES(${PACKAGE_NAME} grib-i18n) | ||
ENDIF(GETTEXT_MSGFMT_EXECUTABLE) | ||
|