You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
140 lines
3.7 KiB
140 lines
3.7 KiB
###########################################
|
|
# #
|
|
# 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 <gpsim/interface.h>
|
|
#include <gpsim/gpsim_interface.h>
|
|
#include <gpsim/breakpoints.h>
|
|
#include <gpsim/gpsim_time.h>
|
|
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 <gpsim/interface.h>
|
|
#include <gpsim/gpsim_interface.h>
|
|
#include <gpsim/breakpoints.h>
|
|
#include <gpsim/gpsim_time.h>
|
|
#include <gpsim/symbol.h>
|
|
#include <gpsim/program_files.h>
|
|
void func()
|
|
{
|
|
(void)cycles;
|
|
(void)initialize_gpsim_core();
|
|
}
|
|
int main()
|
|
{
|
|
return 0;
|
|
} "
|
|
GPSIM_0_21_11
|
|
)
|
|
|
|
check_cxx_source_compiles( "
|
|
#include <gpsim/ValueCollections.h>
|
|
int main()
|
|
{
|
|
return 0;
|
|
} "
|
|
GPSIM_0_21_12
|
|
)
|
|
|
|
check_cxx_source_compiles( "
|
|
#include <gpsim/pic-processor.h>
|
|
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()
|