From 81c00f9736300281795097937b984ef31a10e533 Mon Sep 17 00:00:00 2001 From: Vitor Santos Costa Date: Mon, 1 Aug 2016 06:54:28 -0500 Subject: [PATCH] compilation support --- CMakeLists.txt | 26 +-- CXX/CMakeLists.txt | 9 +- cmake/FindReadline.cmake | 7 + cmake/Model.cmake | 3 + libYap.cmake | 12 +- os/CMakeLists.txt | 16 +- packages/myddas/CMakeLists.txt | 1 + packages/myddas/mysql/CMakeLists.txt | 18 +- packages/myddas/pl/CMakeLists.txt | 3 - packages/myddas/pl/myddas_odbc.ypp | 226 +++++++++++++++++++++++++ packages/myddas/sqlite3/CMakeLists.txt | 7 +- packages/swig/new | 63 +++++++ utf8proc/CMakeLists.txt | 12 +- utf8proc/utf8proc.h | 4 +- 14 files changed, 359 insertions(+), 48 deletions(-) create mode 100644 packages/myddas/pl/myddas_odbc.ypp create mode 100644 packages/swig/new diff --git a/CMakeLists.txt b/CMakeLists.txt index 8a595bd6a..a2e8caa0c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,9 +33,9 @@ include(Prelims NO_POLICY_SCOPE) include(Sources NO_POLICY_SCOPE) - include(Model NO_POLICY_SCOPE) +include_directories ( utf8proc packages/myddas packages/myddas/sqlite3 packages/myddas/sqlite3/Android/jni/sqlite/nativehelper packages/myddas/sqlite3/Android/jni/sqlite/ ) add_definitions(-DUSE_MYDDAS=1 -DMYDDAS_SQLITE3=1) if (MYSQL_FOUND) @@ -75,6 +75,11 @@ else () endif () +if (WIN32) + list (APPEND YLIBS $) + + endif() + add_library( # Sets the name of the library. libYap @@ -84,21 +89,19 @@ add_library( # Sets the name of the library. ${ENGINE_SOURCES} ${C_INTERFACE_SOURCES} ${STATIC_SOURCES} - ${HEADERS} - ${WINDLLS} - ${YLIBS} ${ALL_SOURCES} + ${YLIBS} + ${WINDLLS} ) -include(libYap) +include(libYap NO_POLICY_SCOPE) + -if (USE_GMP) - target_link_libraries(libYap ${READLINE_LIBRARIES}) -endif (USE_GMP) if (USE_READLINE) - target_link_libraries(libYap libGMP) + target_link_libraries(libYap ${READLINE_LIBRARIES}) endif (USE_READLINE) + if (ANDROID) target_link_libraries(libYap m android log) @@ -108,5 +111,6 @@ set_target_properties(libYap PROPERTIES OUTPUT_NAME Yap ) -include(Config) -MY_include(Packages) + + include(Config NO_POLICY_SCOPE) +MY_include(Packages NO_POLICY_SCOPE) diff --git a/CXX/CMakeLists.txt b/CXX/CMakeLists.txt index d203b748f..d714fe4f7 100644 --- a/CXX/CMakeLists.txt +++ b/CXX/CMakeLists.txt @@ -10,16 +10,19 @@ set (CXX_SOURCES list(APPEND LIBYAP_SOURCES ${CXX_SOURCES} PARENT_SCOPE) -add_external (Yap++ ${CXX_SOURCES} ) -if (ANDROID) + +if (ANDROID OR WIN32) +add_component (Yap++ ${CXX_SOURCES} ) else() +add_external (Yap++ ${CXX_SOURCES} ) MY_target_link_libraries(Yap++ ${CMAKE_DL_LIBS} libYap) -endif() MY_install(TARGETS Yap++ LIBRARY DESTINATION ${libdir} ARCHIVE DESTINATION ${libdir} ) +endif() + include_directories (H include ${CMAKE_BINARY_DIR} ${GMP_INCLUDE_DIR}) diff --git a/cmake/FindReadline.cmake b/cmake/FindReadline.cmake index 74f457c8b..e2ed8f23f 100644 --- a/cmake/FindReadline.cmake +++ b/cmake/FindReadline.cmake @@ -84,3 +84,10 @@ ELSE(READLINE_FOUND) MESSAGE(SYSTEM_ERROR_FATAL "Could not find readline -- please give some paths to CMake") ENDIF(READLINE_FIND_REQUIRED) ENDIF(READLINE_FOUND) + +find_package_handle_standard_args(Readline READLINE_INCLUDE_DIR READLINE_LIBRARIES READLINE_readline_LIBRARY READLINE_ncurses_LIBRARY) + + +MARK_AS_ADVANCED( + READLINE_FOUND + ) diff --git a/cmake/Model.cmake b/cmake/Model.cmake index 338b04010..0e29d4e84 100644 --- a/cmake/Model.cmake +++ b/cmake/Model.cmake @@ -106,3 +106,6 @@ set_property( DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS $<$:L endif (WITH_CALL_TRACER) set_property( DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS UTF8PROC=1) + + + diff --git a/libYap.cmake b/libYap.cmake index 20f412a4e..fbc85ed73 100644 --- a/libYap.cmake +++ b/libYap.cmake @@ -75,11 +75,9 @@ if (GMP_FOUND) # GMP_INCLUDE_DIRS - include search path # GMP_LIBRARIES - libraries to link with # GMP_LIBRARY_ #add_executable(test ${SOURCES}) -add_library(libGMP SHARED IMPORTED GLOBAL) -set_target_properties(libGMP PROPERTIES IMPORTED_LOCATION ${GMP_LIBRARIES}) #config.h needs this (TODO: change in code latter) include_directories( ${GMP_INCLUDE_DIRS} ) -target_link_libraries(libYap libGMP) + target_link_libraries(libYap ${GMP_LIBRARIES} ) endif (GMP_FOUND) include( Threads ) @@ -94,15 +92,19 @@ list(APPEND YAP_SYSTEM_OPTIONS "thread support") #utf-8 is not an option # we use the nice UTF-8 package #available at the Julia project -include_directories ( utf8proc ) -MY_ADD_SUBDIRECTORY ( utf8proc ) MY_ADD_SUBDIRECTORY ( os ) MY_ADD_SUBDIRECTORY ( OPTYap ) MY_ADD_SUBDIRECTORY ( packages/myddas ) +MY_ADD_SUBDIRECTORY ( utf8proc ) MY_ADD_SUBDIRECTORY ( library/dialect/swi/fli ) MY_ADD_SUBDIRECTORY ( CXX ) +if (READLINE_LIBS) + target_link_libraries(libYap ${READLINE_LIBS} ) +endif (READLINE_LIBS) + + #bootstrap and saved state add_subDIRECTORY ( pl ) diff --git a/os/CMakeLists.txt b/os/CMakeLists.txt index 4685648aa..38c8d6763 100644 --- a/os/CMakeLists.txt +++ b/os/CMakeLists.txt @@ -67,9 +67,13 @@ include(CheckFunctionExists) include(CheckSymbolExists) include(CheckVariableExists) - option (READLINE "GNU readline console" ON) + option (WITH_READLINE "GNU readline console" ON) - if (READLINE) + if (WIN32) + set (WITH_READLINE OFF) + endif (WIN32) + + if (WITH_READLINE) macro_optional_find_package (Readline ON) macro_log_feature (READLINE_FOUND "libreadline" "Readline line editing library" @@ -84,10 +88,8 @@ include(CheckVariableExists) # also defined, but not for general use are # READLINE_readline_LIBRARY, where to find the READLINE library. # READLINE_ncurses_LIBRARY, where to find the ncurses library [might not be defined] - include_directories (BEFORE ${READLINE_INCLUDE_DIR}) - set_property( TARGET libYap APPEND PROPERTY LINK_LIBRARIES ${READLINE_LIBRARIES} ) -list( APPEND CMAKE_REQUIRED_LIBRARIES ${READLINE_LIBRARIES} ) + list( APPEND CMAKE_REQUIRED_LIBRARIES ${READLINE_LIBRARIES} ) check_include_files( "stdio.h;readline/readline.h" HAVE_READLINE_READLINE_H ) check_include_files( "stdio.h;readline/history.h" HAVE_READLINE_HISTORY_H ) if (HAVE_READLINE_READLINE_H) @@ -113,9 +115,7 @@ list( APPEND CMAKE_REQUIRED_LIBRARIES ${READLINE_LIBRARIES} ) endif() endif (READLINE_FOUND) - - set( READLINE_LIBS ${READLINE_LIBRARIES} PARENT_SCOPE) -endif (READLINE) +endif (WITH_READLINE) diff --git a/packages/myddas/CMakeLists.txt b/packages/myddas/CMakeLists.txt index 48c5605bd..45c87bcac 100644 --- a/packages/myddas/CMakeLists.txt +++ b/packages/myddas/CMakeLists.txt @@ -35,6 +35,7 @@ set_property(GLOBAL COMPILE_DEFINITIONS -DUSE_MYDDAS=1) +include_directories(. sqlite3) add_subdirectory(sqlite3) MY_add_subdirectory(mysql) diff --git a/packages/myddas/mysql/CMakeLists.txt b/packages/myddas/mysql/CMakeLists.txt index 6d4505a66..37035695c 100644 --- a/packages/myddas/mysql/CMakeLists.txt +++ b/packages/myddas/mysql/CMakeLists.txt @@ -23,8 +23,16 @@ set_property(GLOBAL APPEND PROPERTY COMPILE_DEFINITIONS -DMYDDAS_MYSQL=1) - add_library(Yapmysql SHARED ${MYSQL_SOURCES}) - target_link_libraries(Yapmysql ${MYSQL_LIBRARIES} libYap) + if (WIN32) + add_library(Yapmysql OBJECT ${MYSQL_SOURCES}) + else() + add_library(Yapmysql SHARED ${MYSQL_SOURCES}) + target_link_libraries(Yapmysql ${MYSQL_LIBRARIES} libYap) + install(TARGETS Yapmysql + LIBRARY DESTINATION ${dlls} + ARCHIVE DESTINATION ${dlls} + ) + endif() include_directories(${MYSQL_INCLUDE_DIR} ..) set_target_properties(Yapmysql PROPERTIES POSITION_INDEPENDENT_CODE ON @@ -37,11 +45,7 @@ -DMYDDAS_MYSQL=1) - install(TARGETS Yapmysql - LIBRARY DESTINATION ${dlls} - ARCHIVE DESTINATION ${dlls} - ) - + else () add_definitions(-DMYDDAS_MYSQL=0) endif (MYSQL_FOUND) diff --git a/packages/myddas/pl/CMakeLists.txt b/packages/myddas/pl/CMakeLists.txt index 065268008..c50594ca5 100644 --- a/packages/myddas/pl/CMakeLists.txt +++ b/packages/myddas/pl/CMakeLists.txt @@ -20,7 +20,6 @@ function(cpp_compile output filename) get_filename_component(base ${filename} NAME_WE) set(base_abs ${CMAKE_CURRENT_BINARY_DIR}/${base}) set(outfile ${base_abs}.yap) - message(${outfile}) set(${output} ${${output}} ${outfile} PARENT_SCOPE) IF (MSVC) add_custom_command( @@ -39,8 +38,6 @@ endfunction() function(cpp_driver output dbms filename) set(outfile ${CMAKE_CURRENT_BINARY_DIR}/myddas_${dbms}.yap) set(${output} ${${output}} ${outfile} PARENT_SCOPE) - message(${outfile}) - IF (MSVC) add_custom_command( OUTPUT ${outfile} diff --git a/packages/myddas/pl/myddas_odbc.ypp b/packages/myddas/pl/myddas_odbc.ypp new file mode 100644 index 000000000..bef806782 --- /dev/null +++ b/packages/myddas/pl/myddas_odbc.ypp @@ -0,0 +1,226 @@ +%/************************************************************************* +* * +* YAP Prolog * +* * +* Yap Prolog was developed at NCCUP - Universidade do Porto * +* * +* Copyright L.Damas, V.S.Costa and Universidade do Porto 1985-1997 * +* * +************************************************************************** +* * +* File: myddas_mysql.yap * +* Last rev: * +* mods: * +* comments: MySQL Predicates * +* * +*************************************************************************/ +#ifdef MYDDAS_SQLITE3 + +:- module(myddas_sqlite3,[ + sqlite3_result_set/1, + sqlite3_datalog_describe/1, + sqlite3_datalog_describe/2, + sqlite3_describe/3, + sqlite3_describe/2, + sqlite3_datalog_show_tables/1, + sqlite3_datalog_show_tables/0, + sqlite3_show_tables/2, + sqlite3_show_tables/1, + sqlite3_show_database/2, + sqlite3_show_databases/2, + sqlite3_show_databases/1, + sqlite3_change_database/2, + sqlite3_call_procedure/4, + sqlite3_call_procedure/3, + c_sqlite3_change_database/2, + c_sqlite3_connect/4, + c_sqlite3_disconnect/1, + c_sqlite3_get_attributes_types/3, + c_sqlite3_get_database/2, + c_sqlite3_get_fields_properties/3, + c_sqlite3_get_next_result_set/3, + c_sqlite3_query/5, + c_sqlite3_number_of_fields/3, + c_sqlite3_row/3 + ]). + +:- use_module(myddas,[ + db_sql/3 + ]). + +:- use_module(myddas_errors,[ + '$error_checks'/1 + ]). + +:- use_module(myddas_util_predicates,[ + '$get_value'/2, + '$make_atom'/2, + '$make_atom_args'/2, + '$make_a_list'/2, + '$write_or_not'/1 + ]). +:- load_foreign_files( ['Yapsqlite3'], [], init_sqlite3). + +%-------------------------------------------------------- +% Public Predicates +%-------------------------------------------------------- + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% sqlite3_result_set/1 +% +% +sqlite3_result_set(X):- + var(X),!, + get_value(sqlite3_result_set,X). +sqlite3_result_set(use_result):- + set_value(sqlite3_result_set,use_result). +sqlite3_result_set(store_result):- + set_value(sqlite3_result_set,store_result). +%default value +:- sqlite3_result_set(use_result). +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% sqlite3_describe/2 +% +% +sqlite3_datalog_describe(Relation):- + sqlite3_datalog_describe(myddas,Relation). +sqlite3_datalog_describe(Connection,Relation) :- + '$error_checks'(sqlite3_datalog_describe(Relation,Connection)), + '$get_value'(Connection,Conn), + '$make_atom'(['DESCRIBE ',Relation],SQL), + sqlite3_result_set(Mode), + c_sqlite3_query(SQL,ResultSet,Conn,Mode,_), + c_sqlite3_table_write(ResultSet). +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% sqlite3_describe/3 +% sqlite3_describe/2 +% gives the results of the DESCRIBE statement +% by backtracking +sqlite3_describe(Relation,TableInfo) :- + sqlite3_describe(myddas,Relation,TableInfo). +sqlite3_describe(Connection,Relation,tableinfo(A1,A2,A3,A4,A5,A6)) :- + '$error_checks'(sqlite3_describe(Relation,Connection,_)), + '$get_value'(Connection,Conn), + '$make_atom'(['DESCRIBE ',Relation],SQL), + sqlite3_result_set(Mode), + '$write_or_not'(SQL), + c_sqlite3_query(SQL,ResultSet,Conn,Mode,_), + !, + c_sqlite3_row(ResultSet,6,[A1,A2,A3,A4,A5,A6]). +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% sqlite3_datalog_show_tables/1 +% +% +sqlite3_datalog_show_tables:- + sqlite3_datalog_show_tables(myddas). +sqlite3_datalog_show_tables(Connection) :- + '$error_checks'(sqlite3_show_tables(Connection)), + '$get_value'(Connection,Conn), + sqlite3_result_set(Mode), + '$write_or_not'('.tables'), + c_sqlite3_query('.tables',ResultSet,Conn,Mode,_), + c_sqlite3_table_write(ResultSet). +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% sqlite3_show_tables/2 +% sqlite3_show_tables/1 +% gives the results of the SHOW TABLES statement +% by backtracking +sqlite3_show_tables(Table) :- + sqlite3_show_tables(myddas,Table). +sqlite3_show_tables(Connection,table(Table)) :- + '$error_checks'(sqlite3_show_tables(Connection)), + '$get_value'(Connection,Conn), + sqlite3_result_set(Mode), + '$write_or_not'('.tables'), + c_sqlite3_query('.tables',ResultSet,Conn,Mode,_), + !,c_sqlite3_row(ResultSet,1,[Table]). +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% sqlite3_show_database/2 +% +% +sqlite3_show_database(Connection,Database) :- + '$error_checks'(sqlite3_show_database(Connection,Database)), + '$get_value'(Connection,Con), + c_sqlite3_get_database(Con,Database). +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% sqlite3_show_databases/2 +% +% +sqlite3_show_databases(Connection,database(Databases)) :- + %'$error_checks'(sqlite3_show_databases(Connection,Database)), + '$get_value'(Connection,Conn), + sqlite3_result_set(Mode), + '$write_or_not'('SHOW DATABASES'), + c_sqlite3_query('SHOW DATABASES',ResultSet,Conn,Mode,_), + !,c_sqlite3_row(ResultSet,1,[Databases]). +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% sqlite3_show_databases/1 +% TODO Error Checks +% +sqlite3_show_databases(Connection) :- + '$error_checks'(sqlite3_show_databases(Connection)), + '$get_value'(Connection,Conn), + sqlite3_result_set(Mode), + '$write_or_not'('SHOW DATABASES'), + c_sqlite3_query('SHOW DATABASES',ResultSet,Conn,Mode,_), + c_sqlite3_table_write(ResultSet). +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% sqlite3_change_database/2 +% +% +sqlite3_change_database(Connection,Database) :- + '$error_checks'(sqlite3_change_database(Connection,Database)), + '$get_value'(Connection,Con), + '$make_atom'(['USE ',Database],SQL), + '$write_or_not'(SQL), + c_sqlite3_change_database(Con,Database). +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% sqlite3_call_procedure/4 +% sqlite3_call_procedure/3 +% sqlite3_call_procedure(+,+,+,?) +% Only support in MySQL 5.0 an above +% Called procedure must return results via MySQL result set +sqlite3_call_procedure(Procedure,Args,Result) :- + sqlite3_call_procedure(myddas,Procedure,Args,Result). +sqlite3_call_procedure(Connection,Procedure,Args,LA) :- + '$error_checks'(sqlite3_call_procedure(Connection,Procedure,Args,LA)), + '$make_atom_args'(Args,ArgsSQL), + '$make_atom'(['CALL ',Procedure,'(',ArgsSQL,')'],SQL), + sqlite3_sql(Connection,SQL,LA). +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +#endif /* MYDDAS_SQLITE3 */ \ No newline at end of file diff --git a/packages/myddas/sqlite3/CMakeLists.txt b/packages/myddas/sqlite3/CMakeLists.txt index 71ee16fca..9067deffd 100644 --- a/packages/myddas/sqlite3/CMakeLists.txt +++ b/packages/myddas/sqlite3/CMakeLists.txt @@ -22,13 +22,14 @@ set (SQLITE3_FOUND ON CACHE PRIVATE "") " * Sqlite3 Data-Base (http://www.sqlite3ql.org) is distributed with MYDDAS" ) - include_directories ( .. . Android/jni/sqlite Android/jni/sqlite/nativehelper) - -list (APPEND MYDDAS_FLAGS -DMYDDAS_SQLITE3=1) + list (APPEND MYDDAS_FLAGS -DMYDDAS_SQLITE3=1) set (MYDDAS_FLAGS ${MYDDAS_FLAGS} ON PARENT_SCOPE) set_property(GLOBAL APPEND PROPERTY COMPILE_DEFINITIONS -DMYDDAS_SQLITE3=1) + include_directories ( ${CMAKE_CURRENT_SOURCE_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/Android/jni/sqlite ${CMAKE_CURRENT_SOURCE_DIR}/Android/jni/sqlite/nativehelper) + + if (ANDROID) add_external (Yapsqlite3 ${YAPSQLITE3_SOURCES} ${YAPSQLITE3_ANDROID_SOURCES}) else() diff --git a/packages/swig/new b/packages/swig/new new file mode 100644 index 000000000..d338d8b4c --- /dev/null +++ b/packages/swig/new @@ -0,0 +1,63 @@ + +# This is a CMake example for Python + +INCLUDE(${SWIG_USE_FILE}) + +if (PYTHONLIBS_FOUND) +INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH}) + +INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/CXX) + +SET(CMAKE_SWIG_FLAGS "") + +SET_SOURCE_FILES_PROPERTIES(../yap.i PROPERTIES CPLUSPLUS ON) +SET_SOURCE_FILES_PROPERTIES(../yap.i PROPERTIES SWIG_FLAGS "-includeall") + +SET( CMAKE_SWIG_OUTDIR "${PROJECT_BINARY_DIR}/yap" ) + + + SWIG_ADD_MODULE(py python ../yap.i ) + + SWIG_LINK_LIBRARIES (py Yap++ ) + + + add_dependencies(py Yap++ ) + +configure_file ("setup.py.cmake" + "yap/setup.py" ) + + add_custom_target ( PyYAP ALL + COMMAND ${PYTHON_EXECUTABLE} setup.py install + WORKING_DIRECTORY "yap" + DEPENDS python Yap++) + + + if ( DOCUMENTATION AND DOXYGEN_FOUND ) + + set(CMAKE_SWIG_FLAGS -DDOXYGEN=${DOXYGEN_FOUND}) + + # Run doxygen to only generate the xml + add_custom_command ( OUTPUT ${CMAKE_BINARY_DIR}/doc/xml/ftdi_8c.xml + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/doc + COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_BINARY_DIR}/Doxyfile.xml + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + DEPENDS ${c_headers};${c_sources};${cpp_sources};${cpp_headers} + ) + + # generate .i from doxygen .xml + add_custom_command ( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ftdi1_doc.i + COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/doxy2swig.py -n + ${CMAKE_BINARY_DIR}/doc/xml/ftdi_8c.xml + ${CMAKE_CURRENT_BINARY_DIR}/ftdi1_doc.i + DEPENDS ${CMAKE_BINARY_DIR}/doc/xml/ftdi_8c.xml + ) + add_custom_target ( doc_i DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ftdi1_doc.i ) + add_dependencies( ${SWIG_MODULE_ftdi1_REAL_NAME} doc_i ) + + endif () + + +# add_subdirectory ( examples ) + else () + message(STATUS "Not building python bindings") +endif(PYTHONLIBS_FOUND) diff --git a/utf8proc/CMakeLists.txt b/utf8proc/CMakeLists.txt index dcbcc2427..f1a39b3ca 100644 --- a/utf8proc/CMakeLists.txt +++ b/utf8proc/CMakeLists.txt @@ -4,6 +4,7 @@ set ( UTF8PROC_SOURCES utf8proc.c ) add_component(utf8proc ${UTF8PROC_SOURCES} ) +#set_source_files_properties(${all_c_files} PROPERTIES LANGUAGE CXX) if(POLICY CMP0042) cmake_policy(SET CMP0042 NEW) @@ -24,12 +25,11 @@ add_definitions ( -DUTF8PROC_EXPORTS ) -if (NOT MSVC) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 -std=c99 -pedantic -Wall") -endif () - -SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${my_cxx_flags}" ) -SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${my_cxx_flags}" ) +#if (NOT MSVC) +#set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 -std=c99 -pedantic -Wall") +#endif () +##SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${my_cxx_flags}" ) +#SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${my_cxx_flags}" ) set( CMAKE_REQUIRED_INCLUDES . ${CMAKE_REQUIRED_INCLUDES} ) diff --git a/utf8proc/utf8proc.h b/utf8proc/utf8proc.h index 01419f9fa..3fad1cf5f 100644 --- a/utf8proc/utf8proc.h +++ b/utf8proc/utf8proc.h @@ -112,13 +112,13 @@ typedef bool utf8proc_bool; #endif #include -#ifdef _WIN32 +#if defined( _WIN32 ) && 0 # ifdef UTF8PROC_EXPORTS # define UTF8PROC_DLLEXPORT __declspec(dllexport) # else # define UTF8PROC_DLLEXPORT __declspec(dllimport) # endif -#elif __GNUC__ >= 4 +#elif __GNUC__ >= 4 && 0 # define UTF8PROC_DLLEXPORT __attribute__ ((visibility("default"))) #else # define UTF8PROC_DLLEXPORT