########################################### # # # Improvements and feedback are welcome # # # # This file is released under GPL >= 3 # # # ########################################### # required stuff find_package( TQt ) find_package( TDE ) tde_setup_architecture_flags( ) include(TestBigEndian) test_big_endian(WORDS_BIGENDIAN) tde_setup_largefiles( ) ##### check for gcc visibility support if( WITH_GCC_VISIBILITY ) tde_setup_gcc_visibility( ) endif( WITH_GCC_VISIBILITY ) ##### look for gpsim if( NOT WITH_GPSIM ) set( NO_GPSIM 1 ) else() find_path( HAVE_GPSIM_INCLUDE "gpsim/cod.h" ) find_library( HAVE_GPSIM_LIBRARY gpsim) if( (NOT HAVE_GPSIM_INCLUDE) OR (NOT HAVE_GPSIM_LIBRARY) ) tde_message_fatal( "gpsim support have been requested but was not found on your system" ) else() set( GPSIM_INCLUDE_DIRS ${HAVE_GPSIM_INCLUDE} ) set( GPSIM_LIBRARIES gpsim;gpsimcli ) ##### glib-1.2 or glib-2.0 pkg_search_module( GLIB glib-2.0 glib ) message( STATUS "glib version: ${GLIB_VERSION}" ) if( NOT GLIB_FOUND ) tde_message_fatal( "glib is required but was not found on your system" ) endif() tde_save( CMAKE_REQUIRED_INCLUDES ) set( CMAKE_REQUIRED_INCLUDES ${GLIB_INCLUDE_DIRS} ${GPSIM_INCLUDE_DIRS}) ##### check for gpsim version if( EXISTS ${GPSIM_INCLUDE_DIRS}/gpsim/breakpoints.h ) file( STRINGS ${GPSIM_INCLUDE_DIRS}/gpsim/breakpoints.h GPSIM_BROKEN_INCLUDE REGEX "^#include \"../config.h" ) if( NOT "${GPSIM_BROKEN_INCLUDE}" STREQUAL "" ) message( STATUS "Create fake config.h, due to broken gpsim includes" ) list( APPEND CMAKE_REQUIRED_INCLUDES "${CMAKE_BINARY_DIR}/CMakeFiles" ) list( APPEND GPSIM_INCLUDE_DIRS "${CMAKE_BINARY_DIR}/src" ) if( NOT EXISTS "${CMAKE_BINARY_DIR}/config.h" ) file( WRITE "${CMAKE_BINARY_DIR}/config.h" "/* fake config.h - due to broken gpsim includes */" ) endif() endif() endif() check_cxx_source_compiles( " #include #include #include #include void func() { (void)cycles; (void)initialize_gpsim_core(); (void)load_symbol_file(0,0); } int main() { return 0; } " GPSIM_0_21_4 ) check_cxx_source_compiles( " #include #include #include #include #include #include void func() { (void)cycles; (void)initialize_gpsim_core(); } int main() { return 0; } " GPSIM_0_21_11 ) check_cxx_source_compiles( " #include int main() { return 0; } " GPSIM_0_21_12 ) check_cxx_source_compiles( " #include void func() { pic_processor *Processor; sizeof(Processor->Wreg); } int main() { return 0; } " GPSIM_0_27_0 ) tde_restore( CMAKE_REQUIRED_INCLUDES ) endif((NOT HAVE_GPSIM_INCLUDE) OR (NOT HAVE_GPSIM_LIBRARY)) endif( NOT WITH_GPSIM ) ##### mechanics if( WITH_MECHANICS ) set( MECHANICS 1 ) endif()