add CMakeLists in root directory to simplify build configuration
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
cmake_minimum_required (VERSION 2.6)
|
||||
|
||||
set(PROJECT_NAME "SourcetrailDB")
|
||||
|
||||
project(${PROJECT_NAME})
|
||||
|
||||
# configure default build type to Release
|
||||
set(CMAKE_BUILD_TYPE_INIT "Release")
|
||||
|
||||
|
||||
set(LIB_CORE "lib_core")
|
||||
set(CORE_SOURCE_DIR "${CMAKE_SOURCE_DIR}/core") # can be accessed in subdirectory CMake files
|
||||
set(CORE_BINARY_DIR "${CMAKE_BINARY_DIR}/core") # can be accessed in subdirectory CMake files
|
||||
|
||||
add_subdirectory(${CORE_SOURCE_DIR} ${CORE_BINARY_DIR})
|
||||
add_subdirectory("${CMAKE_SOURCE_DIR}/bindings_python" "${CMAKE_BINARY_DIR}/bindings_python")
|
||||
+10
-24
@@ -29,31 +29,17 @@ install:
|
||||
|
||||
|
||||
before_build:
|
||||
# Setup core project
|
||||
- cd core
|
||||
- mkdir build
|
||||
- cd build
|
||||
- mkdir %ARCHITECTURE%
|
||||
- cd %ARCHITECTURE%
|
||||
- cmake -G "%CMAKE_GENERATOR%" ../..
|
||||
- cd ../../..
|
||||
# Setup bindings_python project
|
||||
- cd bindings_python
|
||||
- mkdir build
|
||||
- cd build
|
||||
- mkdir %ARCHITECTURE%
|
||||
- cd %ARCHITECTURE%
|
||||
- cmake -G "%CMAKE_GENERATOR%" ../.. -DPYTHON_INCLUDE_DIRS="%PYTHON_PATH%/include" -DPYTHON_LIBRARIES="%PYTHON_PATH%/libs/python37.lib"
|
||||
- cd ../../..
|
||||
- cmake -G "%CMAKE_GENERATOR%" ../
|
||||
- cmake -G "%CMAKE_GENERATOR%" ../ -DPYTHON_INCLUDE_DIRS="%PYTHON_PATH%/include" -DPYTHON_LIBRARIES="%PYTHON_PATH%/libs/python37.lib"
|
||||
- cd ../
|
||||
|
||||
|
||||
build_script:
|
||||
- cd core/build/%ARCHITECTURE%
|
||||
- cd build
|
||||
- msbuild /p:configuration=Release /v:m ALL_BUILD.vcxproj
|
||||
- cd ../../..
|
||||
- cd bindings_python/build/%ARCHITECTURE%
|
||||
- msbuild /p:configuration=Release /v:m ALL_BUILD.vcxproj
|
||||
- cd ../../..
|
||||
- cd ../
|
||||
|
||||
|
||||
after_build:
|
||||
@@ -63,17 +49,17 @@ after_build:
|
||||
- mkdir include
|
||||
- cd ..
|
||||
- ps: |
|
||||
copy core/build/$env:ARCHITECTURE/release/sourcetraildb.lib artifacts_core/lib/
|
||||
copy core/build/$env:ARCHITECTURE/include/version.h artifacts_core/include/
|
||||
copy build/core/release/sourcetraildb.lib artifacts_core/lib/
|
||||
copy build/core/include/version.h artifacts_core/include/
|
||||
copy core/include/* artifacts_core/include/
|
||||
- mkdir artifacts_bindings_python
|
||||
- ps: |
|
||||
copy bindings_python/build/$env:ARCHITECTURE/release/_sourcetraildb.pyd artifacts_bindings_python/
|
||||
copy bindings_python/build/$env:ARCHITECTURE/release/sourcetraildb.py artifacts_bindings_python/
|
||||
copy build/bindings_python/release/_sourcetraildb.pyd artifacts_bindings_python/
|
||||
copy build/bindings_python/release/sourcetraildb.py artifacts_bindings_python/
|
||||
|
||||
|
||||
test_script:
|
||||
- "core\\build\\%ARCHITECTURE%\\release\\test.exe"
|
||||
- "build\\core\\release\\test_core.exe"
|
||||
|
||||
|
||||
artifacts:
|
||||
|
||||
@@ -1,32 +1,7 @@
|
||||
cmake_minimum_required (VERSION 2.6)
|
||||
|
||||
set(PROJECT_NAME "SourcetrailDBBindingsPython")
|
||||
set(LIB_BINDINGS_PYTHON "lib_bindings_python")
|
||||
set(PACKAGE_NAME "sourcetraildb")
|
||||
set(LIB_NAME "_${PACKAGE_NAME}")
|
||||
|
||||
project(${PROJECT_NAME})
|
||||
|
||||
# check for current architecture
|
||||
if (NOT "${CMAKE_GENERATOR}" MATCHES "(Win64|IA64)")
|
||||
set(ARCH 32)
|
||||
else()
|
||||
set(ARCH 64)
|
||||
endif()
|
||||
|
||||
# configure default build type to Release
|
||||
set(CMAKE_BUILD_TYPE_INIT "Release")
|
||||
|
||||
# configure the output directory
|
||||
if (UNIX)
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/build/${ARCH}bit/${CMAKE_BUILD_TYPE}/")
|
||||
else ()
|
||||
foreach(OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES})
|
||||
string( TOUPPER ${OUTPUTCONFIG} UPPER_OUTPUTCONFIG )
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${UPPER_OUTPUTCONFIG} "${CMAKE_SOURCE_DIR}/build/${ARCH}bit/${OUTPUTCONFIG}/")
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_${UPPER_OUTPUTCONFIG} "${CMAKE_SOURCE_DIR}/build/${ARCH}bit/${OUTPUTCONFIG}/")
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${UPPER_OUTPUTCONFIG} "${CMAKE_SOURCE_DIR}/build/${ARCH}bit/${OUTPUTCONFIG}/")
|
||||
endforeach(OUTPUTCONFIG CMAKE_CONFIGURATION_TYPES)
|
||||
endif ()
|
||||
|
||||
|
||||
# --- Find Python ---
|
||||
@@ -45,25 +20,10 @@ message(STATUS "Found Python include dirs: ${PYTHON_INCLUDE_DIRS}")
|
||||
message(STATUS "Found Python libraries: ${PYTHON_LIBRARIES}")
|
||||
|
||||
|
||||
# --- Find Core ---
|
||||
|
||||
if (NOT EXISTS "${CORE_INCLUDE_DIRS}")
|
||||
message(STATUS "Core include dir \"${CORE_INCLUDE_DIRS}\" does not exist, trying to find Core automatically.")
|
||||
set(CORE_INCLUDE_DIRS "${CMAKE_SOURCE_DIR}/../core/include" CACHE FILEPATH "path to core include directory")
|
||||
message(STATUS "Set Core include dir to \"${CORE_INCLUDE_DIRS}\".")
|
||||
endif ()
|
||||
|
||||
if (NOT EXISTS "${CORE_LIBRARIES}")
|
||||
message(STATUS "Core library \"${CORE_LIBRARIES}\" does not exist, trying to find Core automatically.")
|
||||
set(CORE_LIBRARIES "${CMAKE_SOURCE_DIR}/../core/build/${ARCH}bit/Release/sourcetraildb.lib" CACHE FILEPATH "path to core library directory")
|
||||
message(STATUS "Set Core library to \"${CORE_LIBRARIES}\".")
|
||||
endif ()
|
||||
|
||||
|
||||
# --- Setup Paths ---
|
||||
|
||||
set(RESOURCES_SWIG_DIR "${CMAKE_SOURCE_DIR}/../resources_swig")
|
||||
set(GENERATED_SRC_DIR "${CMAKE_BINARY_DIR}/src")
|
||||
set(RESOURCES_SWIG_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../resources_swig")
|
||||
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")
|
||||
@@ -85,24 +45,22 @@ set(HDR_FILES
|
||||
|
||||
# --- Configure Target ---
|
||||
|
||||
add_library(${LIB_NAME} SHARED ${SRC_FILES} ${HDR_FILES} ${SWIG_INTERFACE_FILE})
|
||||
add_library(${LIB_BINDINGS_PYTHON} SHARED ${SRC_FILES} ${HDR_FILES} ${SWIG_INTERFACE_FILE})
|
||||
|
||||
set_target_properties(${LIB_NAME} PROPERTIES SUFFIX ".pyd")
|
||||
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_NAME}
|
||||
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_SOURCE_DIR}/build/${ARCH}bit/$(CONFIGURATION) ${SWIG_INTERFACE_FILE}
|
||||
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."
|
||||
)
|
||||
|
||||
target_include_directories(${LIB_NAME} PUBLIC
|
||||
target_include_directories(${LIB_BINDINGS_PYTHON} PUBLIC
|
||||
"${RESOURCES_SWIG_DIR}/include"
|
||||
"${CORE_INCLUDE_DIRS}"
|
||||
"${CORE_SOURCE_DIR}/include"
|
||||
${PYTHON_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
message("CORE_RELEASE_LIBRARY: ${CORE_LIBRARIES}")
|
||||
|
||||
target_link_libraries(${LIB_NAME} ${PYTHON_LIBRARIES})
|
||||
target_link_libraries(${LIB_NAME} ${CORE_LIBRARIES})
|
||||
target_link_libraries(${LIB_BINDINGS_PYTHON} ${PYTHON_LIBRARIES} ${LIB_CORE})
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
/build/
|
||||
+14
-39
@@ -1,44 +1,17 @@
|
||||
cmake_minimum_required (VERSION 2.6)
|
||||
|
||||
set(PROJECT_NAME "SourcetrailDBCore")
|
||||
set(LIB_NAME "sourcetraildb")
|
||||
set(TEST_NAME "test")
|
||||
set(TEST_CORE "test_core")
|
||||
|
||||
set(INTERFACE_VERSION 0)
|
||||
set(DATABASE_VERSION 22)
|
||||
set(COMMIT_VERSION 1)
|
||||
set(VERSION_STRING "v${INTERFACE_VERSION}_db${DATABASE_VERSION}_c${COMMIT_VERSION}")
|
||||
|
||||
project(${PROJECT_NAME})
|
||||
|
||||
# check for current architecture
|
||||
if(NOT "${CMAKE_GENERATOR}" MATCHES "(Win64|IA64)")
|
||||
set(ARCH 32)
|
||||
else()
|
||||
set(ARCH 64)
|
||||
endif()
|
||||
|
||||
# configure default build type to Release
|
||||
set(CMAKE_BUILD_TYPE_INIT "Release")
|
||||
|
||||
# configure the output directory
|
||||
if (UNIX)
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/build/${ARCH}bit/${CMAKE_BUILD_TYPE}/")
|
||||
else ()
|
||||
foreach(OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES})
|
||||
string( TOUPPER ${OUTPUTCONFIG} UPPER_OUTPUTCONFIG )
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${UPPER_OUTPUTCONFIG} "${CMAKE_SOURCE_DIR}/build/${ARCH}bit/${OUTPUTCONFIG}/")
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_${UPPER_OUTPUTCONFIG} "${CMAKE_SOURCE_DIR}/build/${ARCH}bit/${OUTPUTCONFIG}/")
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${UPPER_OUTPUTCONFIG} "${CMAKE_SOURCE_DIR}/build/${ARCH}bit/${OUTPUTCONFIG}/")
|
||||
endforeach(OUTPUTCONFIG CMAKE_CONFIGURATION_TYPES)
|
||||
endif ()
|
||||
|
||||
|
||||
set(GENERATED_INCLUDE_DIRECTORY "${CMAKE_BINARY_DIR}/include")
|
||||
set(GENERATED_INCLUDE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/include")
|
||||
set(GENERATED_VERSION_FILE "${GENERATED_INCLUDE_DIRECTORY}/version.h")
|
||||
|
||||
configure_file(
|
||||
${CMAKE_SOURCE_DIR}/version.h.in
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/version.h.in
|
||||
${GENERATED_VERSION_FILE}
|
||||
)
|
||||
|
||||
@@ -86,11 +59,13 @@ set(LIB_HDR_FILES
|
||||
${GENERATED_VERSION_FILE}
|
||||
)
|
||||
|
||||
add_library(${LIB_NAME} STATIC ${LIB_SRC_FILES} ${LIB_HDR_FILES})
|
||||
add_library(${LIB_CORE} STATIC ${LIB_SRC_FILES} ${LIB_HDR_FILES})
|
||||
|
||||
target_include_directories(${LIB_NAME} PUBLIC
|
||||
"${CMAKE_SOURCE_DIR}/include"
|
||||
"${CMAKE_SOURCE_DIR}/external"
|
||||
set_target_properties(${LIB_CORE} PROPERTIES OUTPUT_NAME "sourcetraildb")
|
||||
|
||||
target_include_directories(${LIB_CORE} PUBLIC
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/include"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/external"
|
||||
"${GENERATED_INCLUDE_DIRECTORY}"
|
||||
)
|
||||
|
||||
@@ -99,12 +74,12 @@ set(TEST_SRC_FILES
|
||||
test/test.cpp
|
||||
)
|
||||
|
||||
add_executable(${TEST_NAME} ${TEST_SRC_FILES})
|
||||
add_executable(${TEST_CORE} ${TEST_SRC_FILES})
|
||||
|
||||
target_include_directories(${TEST_NAME} PUBLIC
|
||||
"${CMAKE_SOURCE_DIR}/include"
|
||||
"${CMAKE_SOURCE_DIR}/external"
|
||||
target_include_directories(${TEST_CORE} PUBLIC
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/include"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/external"
|
||||
"${GENERATED_INCLUDE_DIRECTORY}"
|
||||
)
|
||||
|
||||
target_link_libraries(${TEST_NAME} ${LIB_NAME})
|
||||
target_link_libraries(${TEST_CORE} ${LIB_CORE})
|
||||
|
||||
Reference in New Issue
Block a user