From af43432e523c105c6fa71d43d7b96d34049b0a67 Mon Sep 17 00:00:00 2001 From: Eberhard Graether Date: Thu, 13 Dec 2018 09:54:48 +0100 Subject: [PATCH] fixed build for macOS --- CMakeLists.txt | 4 ++-- bindings_python/CMakeLists.txt | 40 +++++++++++++++++++++++----------- core/include/ReferenceKind.h | 4 ++-- core/include/SymbolKind.h | 4 ++-- 4 files changed, 33 insertions(+), 19 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 543e9f0..61f00b2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,9 +6,9 @@ set(PROJECT_NAME "SourcetrailDB") project(${PROJECT_NAME}) -# configure default build type to Release +# configure default flags set(CMAKE_BUILD_TYPE_INIT "Release") - +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") set(LIB_CORE "lib_core") set(CORE_SOURCE_DIR "${CMAKE_SOURCE_DIR}/core") # can be accessed in subdirectory CMake files diff --git a/bindings_python/CMakeLists.txt b/bindings_python/CMakeLists.txt index 638acf0..4d0faaa 100644 --- a/bindings_python/CMakeLists.txt +++ b/bindings_python/CMakeLists.txt @@ -28,17 +28,14 @@ set(GENERATED_SRC_DIR "${CMAKE_CURRENT_BINARY_DIR}/src") set(SWIG_INTERFACE_FILE "${RESOURCES_SWIG_DIR}/interface/${PACKAGE_NAME}.i") set(GENERATED_WRAPPER_FILE "${GENERATED_SRC_DIR}/${PACKAGE_NAME}_wrap.cxx") +file(WRITE ${GENERATED_WRAPPER_FILE} "") -if (WIN32) - file(WRITE ${GENERATED_WRAPPER_FILE} "") -endif () - -set(SRC_FILES +set(SRC_FILES "${RESOURCES_SWIG_DIR}/src/${PACKAGE_NAME}.cpp" ${GENERATED_WRAPPER_FILE} ) -set(HDR_FILES +set(HDR_FILES "${RESOURCES_SWIG_DIR}/include/${PACKAGE_NAME}.h" ) @@ -48,14 +45,31 @@ set(HDR_FILES add_library(${LIB_BINDINGS_PYTHON} SHARED ${SRC_FILES} ${HDR_FILES} ${SWIG_INTERFACE_FILE}) set_target_properties(${LIB_BINDINGS_PYTHON} PROPERTIES OUTPUT_NAME "_${PACKAGE_NAME}") -set_target_properties(${LIB_BINDINGS_PYTHON} PROPERTIES SUFFIX ".pyd") -add_custom_command( - TARGET ${LIB_BINDINGS_PYTHON} - PRE_BUILD - COMMAND if not exist \"${GENERATED_SRC_DIR}\" mkdir \"${GENERATED_SRC_DIR}\" \n swig -c++ -python -I${RESOURCES_SWIG_DIR}/include -o ${GENERATED_WRAPPER_FILE} -outdir ${CMAKE_CURRENT_BINARY_DIR}/$(CONFIGURATION) ${SWIG_INTERFACE_FILE} - COMMENT "Generating wrapper code file." -) +if (WIN32) + set_target_properties(${LIB_BINDINGS_PYTHON} PROPERTIES SUFFIX ".pyd") +else() + # Remove 'lib' prefix + set_target_properties(${LIB_BINDINGS_PYTHON} PROPERTIES PREFIX "") + set_target_properties(${LIB_BINDINGS_PYTHON} PROPERTIES SUFFIX ".so") +endif() + +if (WIN32) + add_custom_command( + TARGET ${LIB_BINDINGS_PYTHON} + PRE_BUILD + COMMAND if not exist \"${GENERATED_SRC_DIR}\" mkdir \"${GENERATED_SRC_DIR}\" \n swig -c++ -python -I${RESOURCES_SWIG_DIR}/include -o ${GENERATED_WRAPPER_FILE} -outdir ${CMAKE_CURRENT_BINARY_DIR}/$(CONFIGURATION) ${SWIG_INTERFACE_FILE} + COMMENT "Generating wrapper code file." + ) +else() + add_custom_command( + TARGET ${LIB_BINDINGS_PYTHON} + PRE_BUILD + COMMAND swig -c++ -python -I${RESOURCES_SWIG_DIR}/include -o ${GENERATED_WRAPPER_FILE} -outdir ${CMAKE_CURRENT_BINARY_DIR} ${SWIG_INTERFACE_FILE} + COMMENT "Generating wrapper code file." + ) +endif() + target_include_directories(${LIB_BINDINGS_PYTHON} PUBLIC "${RESOURCES_SWIG_DIR}/include" diff --git a/core/include/ReferenceKind.h b/core/include/ReferenceKind.h index 8022d7a..0ddad8c 100644 --- a/core/include/ReferenceKind.h +++ b/core/include/ReferenceKind.h @@ -17,10 +17,10 @@ #ifndef SOURCETRAIL_REFERENCE_KIND_H #define SOURCETRAIL_REFERENCE_KIND_H +#include "EdgeKind.h" + namespace sourcetrail { - enum EdgeKind; - /** * Enum providing all possible values for kinds of references that can be recorded using the SourcetrailDBWriter interface. */ diff --git a/core/include/SymbolKind.h b/core/include/SymbolKind.h index d1bc5aa..0a50122 100644 --- a/core/include/SymbolKind.h +++ b/core/include/SymbolKind.h @@ -17,10 +17,10 @@ #ifndef SOURCETRAIL_SYMBOL_KIND_H #define SOURCETRAIL_SYMBOL_KIND_H +#include "NodeKind.h" + namespace sourcetrail { - enum NodeKind; - /** * Enum providing all possible values for kinds of symbols that can be recorded using the SourcetrailDBWriter interface. */