mirror of https://gitlab.com/cppit/jucipp
3 changed files with 124 additions and 150 deletions
@ -0,0 +1,19 @@ |
|||||||
|
cmake_minimum_required (VERSION 2.8.4) |
||||||
|
|
||||||
|
set(project_name juci) |
||||||
|
set(module juci_to_python_api) |
||||||
|
|
||||||
|
#### TODO WINDOWS SUPPORT #### |
||||||
|
set(juci_config_folder "$ENV{HOME}/.juci") |
||||||
|
set(bin_install_path "/usr/local/bin") |
||||||
|
set(lib_install_path "/usr/local/lib/python2.7/dist-packages/") |
||||||
|
##### |
||||||
|
|
||||||
|
project (${project_name}) |
||||||
|
|
||||||
|
add_subdirectory("src") |
||||||
|
|
||||||
|
install( |
||||||
|
DIRECTORY "config" "plugins" |
||||||
|
DESTINATION ${juci_config_folder} |
||||||
|
USE_SOURCE_PERMISSIONS) |
||||||
@ -1,164 +1,124 @@ |
|||||||
cmake_minimum_required (VERSION 2.8.4) |
|
||||||
set(project_name juci) |
|
||||||
set(module juci_to_python_api) |
|
||||||
project (${project_name}) |
|
||||||
add_definitions(-DBOOST_LOG_DYN_LINK) |
add_definitions(-DBOOST_LOG_DYN_LINK) |
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -std=c++11 -pthread -Wall -Wno-reorder") |
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -std=c++11 -pthread -Wall -Wno-reorder") |
||||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_LIST_DIR}/cmake/Modules/") |
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_LIST_DIR}/cmake/Modules/") |
||||||
|
|
||||||
#You are of course using Homebrew: |
|
||||||
if(APPLE) |
if(APPLE) |
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -L/usr/local/opt/gettext/lib -I/usr/local/opt/gettext/include -undefined dynamic_lookup") #TODO: fix this |
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -L/usr/local/opt/gettext/lib -I/usr/local/opt/gettext/include -undefined dynamic_lookup") #T |
||||||
set(CMAKE_MACOSX_RPATH 1) |
set(CMAKE_MACOSX_RPATH 1) |
||||||
set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:/usr/local/lib/pkgconfig:/opt/X11/lib/pkgconfig") |
set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:/usr/local/lib/pkgconfig:/opt/X11/lib/pkgconfig") |
||||||
endif() |
endif() |
||||||
INCLUDE(FindPkgConfig) |
INCLUDE(FindPkgConfig) |
||||||
|
|
||||||
message("Searcing for libclang") |
set(validation true) |
||||||
#LIBCLANG_FOUND System has libclang. |
|
||||||
#LIBCLANG_INCLUDE_DIRS The libclang include directories. |
function(install_help APPLE UNIX WINDOWS) |
||||||
#LIBCLANG_LIBRARIES The libraries needed to use libclang. |
message("Install package with:") |
||||||
#LIBCLANG_LIBRARY_DIR The path to the directory containing libclang. |
if(UNIX) |
||||||
#LIBCLANG_KNOWN_LLVM_VERSIONS Known LLVM release numbers. |
if(APPLE) |
||||||
find_package(LibClangmm) |
message("brew install ${APPLE}") |
||||||
find_package(LibClang) |
else() |
||||||
|
message("sudo apt-get install ${UNIX}") |
||||||
|
endif(APPLE) |
||||||
|
endif(UNIX) |
||||||
|
if(WINDOWS) |
||||||
|
message("choco install ${WINDOWS}") |
||||||
|
endif(WINDOWS) |
||||||
|
endfunction(install_help) |
||||||
|
|
||||||
|
function(validate FOUND APPLE UNIX WINDOWS) |
||||||
|
if(!${FOUND}) |
||||||
|
set(validation false) |
||||||
|
install_help(${APPLE} ${UNIX} ${WINDOWS}) |
||||||
|
endif() |
||||||
|
endfunction(validate) |
||||||
|
|
||||||
if(${LCL_FOUND}) |
find_package(LibClangmm) |
||||||
message("libclangmm libraries found. Continuing") |
validate(${LCL_FOUND} "clangmm" "clangmm" "clangmm") |
||||||
message("${LCL_INCLUDE_DIRS}") |
|
||||||
else() |
|
||||||
message(FATAL_ERROR "The libclangmm libraries are required. Quitting.") |
|
||||||
endif() |
|
||||||
|
|
||||||
if(${LIBCLANG_FOUND}) |
find_package(LibClang) |
||||||
message("libclangmm libraries found. Continuing") |
validate(${LIBCLANG_FOUND} "clang" "libclang-dev" "llvm") |
||||||
message("${LIBCLANG_INCLUDE_DIRS}") |
|
||||||
else() |
|
||||||
message(FATAL_ERROR "The libclangmm libraries are required. Quitting.") |
|
||||||
endif() |
|
||||||
|
|
||||||
#### Finding boost, the variables below is set ##### |
|
||||||
#PYTHONLIBS_FOUND - True if headers and requested libraries were found |
|
||||||
#PYTHON_INCLUDE_DIRS - Boost include directories |
|
||||||
#PYTHON_LIBRARIES - Boost component libraries to be linked |
|
||||||
find_package(PythonLibs 2.7) |
find_package(PythonLibs 2.7) |
||||||
|
validate(${PYTHONLIBS_FOUND} "python" "libpython-dev" "python") |
||||||
|
|
||||||
#If python is found |
|
||||||
if(${PYTHONLIBS_FOUND}) |
|
||||||
message("Python libraries found. Continuing") |
|
||||||
else() |
|
||||||
message("Please install python libraries. The libraries where not found.") |
|
||||||
message("Python include dirs: ${PYTHON_INCLUDE_DIRS}") |
|
||||||
message("Python link dirs ${PYTHON_LIBRARIES}") |
|
||||||
message(FATAL_ERROR "The python libraries are required. Quitting.") |
|
||||||
endif() |
|
||||||
|
|
||||||
#### Finding boost, the variables below is set ##### |
|
||||||
#Boost_FOUND - True if headers and requested libraries were found |
|
||||||
#Boost_INCLUDE_DIRS - Boost include directories |
|
||||||
#Boost_LIBRARY_DIRS - Link directories for Boost libraries |
|
||||||
#Boost_LIBRARIES - Boost component libraries to be linked |
|
||||||
find_package(Boost 1.55 COMPONENTS python thread log system filesystem REQUIRED) |
find_package(Boost 1.55 COMPONENTS python thread log system filesystem REQUIRED) |
||||||
|
validate(${Boost_FOUND} "boost" "libboost-all-dev" "boost") |
||||||
|
|
||||||
#If boost is not found |
|
||||||
if(${Boost_FOUND}) |
|
||||||
message("Boost libraries found. Continuing") |
|
||||||
else() |
|
||||||
message("Please install boost libraries. The libraries where not found.") |
|
||||||
message("Boost library dirs: ${Boost_LIBRARY_DIRS}") |
|
||||||
message("Boost include dirs: ${Boost_INCLUDE_DIRS}") |
|
||||||
message("Boost link dirs ${Boost_LIBRARIES}") |
|
||||||
message(FATAL_ERROR "The boost libraries are required. Quitting.") |
|
||||||
endif() |
|
||||||
|
|
||||||
#### Finding gtkmm, the variables below is set ##### |
|
||||||
#GTKMM_FOUND - True if headers and requested libraries were found |
|
||||||
#GTKMM_INCLUDE_DIRS - GTKMM include directories |
|
||||||
#GTKMM_LIBRARY_DIRS - Link directories for GTKMM libraries |
|
||||||
#GTKMM_LIBRARIES - GTKMM libraries to be linked |
|
||||||
pkg_check_modules(GTKMM gtkmm-3.0) # The name GTKMM is set here for the variables abouve |
pkg_check_modules(GTKMM gtkmm-3.0) # The name GTKMM is set here for the variables abouve |
||||||
|
validate(${GTKMM_FOUND} "gtkmm" "libgtkmm-dev" "gtkmm") |
||||||
#If gtkmm is not found |
|
||||||
if(${GTKMM_FOUND}) |
|
||||||
message("Gtkmm libraries found. Continuing") |
|
||||||
else() |
|
||||||
message("Please install gtkmm libraries. The libraries where not found.") |
|
||||||
message("Gtkmm library dirs ${GTKMM_LIBRARY_DIRS}") |
|
||||||
message("Gtkmm include dirs ${GTKMM_INCLUDE_DIRS}") |
|
||||||
message("Gtkmm link dirs ${GTKMM_LIBRARIES}") |
|
||||||
message(FATAL_ERROR "The gtkmm libraries are required. Quitting.") |
|
||||||
endif() |
|
||||||
|
|
||||||
pkg_check_modules(GTKSVMM gtksourceviewmm-3.0) |
pkg_check_modules(GTKSVMM gtksourceviewmm-3.0) |
||||||
if(${GTKSVMM_FOUND}) |
validate(${GTKSVMM_FOUND} "gtksvmm" "libgtksvmm-dev" "gtkmmsv") |
||||||
message("Gtksourceviewmm libraries found. Continuing") |
|
||||||
else() |
if(${validation}) |
||||||
message(FATAL_ERROR "The gtksourceviewmm libraries are required. Quitting.") |
add_executable(${project_name} |
||||||
endif() |
juci.h |
||||||
|
juci.cc |
||||||
# name of the executable on Windows will be example.exe |
menu.h |
||||||
add_executable(${project_name} |
menu.cc |
||||||
#list of every needed file to create the executable |
source.h |
||||||
juci.h |
source.cc |
||||||
juci.cc |
selectiondialog.h |
||||||
menu.h |
selectiondialog.cc |
||||||
menu.cc |
config.h |
||||||
source.h |
config.cc |
||||||
source.cc |
sourcefile.h |
||||||
selectiondialog.h |
sourcefile.cc |
||||||
selectiondialog.cc |
window.cc |
||||||
config.h |
window.h |
||||||
config.cc |
api.h |
||||||
sourcefile.h |
api.cc |
||||||
sourcefile.cc |
notebook.cc |
||||||
window.cc |
notebook.h |
||||||
window.h |
entrybox.h |
||||||
api.h |
entrybox.cc |
||||||
api.cc |
directories.h |
||||||
notebook.cc |
directories.cc |
||||||
notebook.h |
terminal.h |
||||||
entrybox.h |
terminal.cc |
||||||
entrybox.cc |
tooltips.h |
||||||
directories.h |
tooltips.cc |
||||||
directories.cc |
singletons.h |
||||||
terminal.h |
singletons.cc) |
||||||
terminal.cc |
|
||||||
tooltips.h |
add_library(${module} SHARED |
||||||
tooltips.cc |
api |
||||||
singletons.h |
api_ext) |
||||||
singletons.cc |
|
||||||
) |
include_directories( |
||||||
|
${Boost_INCLUDE_DIRS} |
||||||
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) |
${PYTHON_INCLUDE_DIRS} |
||||||
|
${GTKMM_INCLUDE_DIRS} |
||||||
|
${GTKSVMM_INCLUDE_DIRS} |
||||||
add_library(${module} SHARED |
${LCL_INCLUDE_DIRS} |
||||||
api |
${LIBCLANG_INCLUDE_DIRS}) |
||||||
api_ext |
|
||||||
) |
link_directories( |
||||||
# dependencies |
${GTKMM_LIBRARY_DIRS} |
||||||
|
${GTKSVMM_LIBRARY_DIRS} |
||||||
include_directories( |
${Boost_LIBRARY_DIRS} |
||||||
${Boost_INCLUDE_DIRS} |
${PYTHON_INCLUDE_DIRS} |
||||||
${PYTHON_INCLUDE_DIRS} |
${LCL_LIBRARY_DIRS} |
||||||
${GTKMM_INCLUDE_DIRS} |
${LIBCLANG_LIBRARY_DIRS}) |
||||||
${GTKSVMM_INCLUDE_DIRS} |
|
||||||
${LCL_INCLUDE_DIRS} |
set_target_properties(${module} |
||||||
${LIBCLANG_INCLUDE_DIRS} |
PROPERTIES PREFIX "" |
||||||
) |
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/lib/") |
||||||
link_directories( |
|
||||||
${GTKMM_LIBRARY_DIRS} |
target_link_libraries(${module} ${PYTHON_LIBRARIES} ${Boost_LIBRARIES}) |
||||||
${GTKSVMM_LIBRARY_DIRS} |
|
||||||
${Boost_LIBRARY_DIRS} |
target_link_libraries(${project_name} |
||||||
${PYTHON_INCLUDE_DIRS} |
${LIBCLANG_LIBRARIES} |
||||||
${LCL_LIBRARY_DIRS} |
${LCL_LIBRARIES} |
||||||
${LIBCLANG_LIBRARY_DIRS} |
${GTKMM_LIBRARIES} |
||||||
) |
${GTKSVMM_LIBRARIES} |
||||||
#module: |
${Boost_LIBRARIES} |
||||||
set_target_properties(${module} PROPERTIES PREFIX "" |
${PYTHON_LIBRARIES}) |
||||||
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/lib/") |
|
||||||
target_link_libraries(${module} ${PYTHON_LIBRARIES} ${Boost_LIBRARIES}) |
install(TARGETS ${project_name} ${module} |
||||||
#executable: |
RUNTIME DESTINATION ${bin_install_path} |
||||||
target_link_libraries(${project_name} ${LIVCLANG_LIBRARIES} ${LCL_LIBRARIES} ${GTKMM_LIBRARIES} ${GTKSVMM_LIBRARIES} ${Boost_LIBRARIES} ${PYTHON_LIBRARIES}) |
LIBRARY DESTINATION ${lib_install_path} |
||||||
|
) |
||||||
|
|
||||||
|
endif(${validation}) |
||||||
|
|
||||||
|
|||||||
Loading…
Reference in new issue