#
# DC=/gcc/bin/gdc cmake -DPHOBOS_LIBRARY=/gcc/lib64/libgphobos.so -DPHOBOS_INCLUDE_DIR=/gcc/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include/d -G Ninja ..
#
# cmake -DCMAKE_MODULE_PATH:PATH=/usr/share/cmake-d/cmake-d -G Ninja ..
#
#
#set(CMAKE_MODULE_PATH "PATH=${CMAKE_MODULE_PATH}:/usr/share/cmake-d:/usr/lib64/cmake/")
set(CMAKE_MODULE_PATH "/usr/lib64/cmake;/usr/lib64/cmake/llvm;/usr/lib64/cmake/clang;/usr/share/cmake-d;${CMAKE_MODULE_PATH}")
set(CMAKE_GENERATOR "Ninja")
set(COPYRIGHT_YEAR "2018,2022")
set(CPACK_PACKAGE_NAME "dzrec")
set(PACKAGE_NICE ${CPACK_PACKAGE_NAME})
set(CPACK_PACKAGE_VENDOR "Petr Šilhavý")
set(CPACK_PACKAGE_VERSION_MAJOR 0)
set(CPACK_PACKAGE_VERSION_MINOR 0)
set(CPACK_PACKAGE_VERSION_PATCH 1)
cmake_minimum_required(VERSION 3.12)
#include(Linux-gdc)
project (dzrec D C)
cmake_policy(SET CMP0069 NEW)
set(PACKAGE_DESCRIPTION_SUMMARY "D zrec")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY ${PACKAGE_DESCRIPTION_SUMMARY})
set(CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH})
set(CPACK_GENERATOR "TXZ;TBZ2;TGZ")
set(PACKAGE_BASE_NAME ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH})
set(PACKAGE_VERSION ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH})
set(VERSION ${PACKAGE_VERSION})
set(MY_PACKAGE_TAG_NAME v${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH})
set_property( GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS TRUE )
# not here : message(" CMAKE_LIBRARY_ARCHITECTURE ${CMAKE_LIBRARY_ARCHITECTURE}")
include(FeatureSummary)
include(AddFileDependencies)
#include(CPack)
include(GNUInstallDirs)
include(CheckSymbolExists)
include(CheckLibraryExists)
include(FindPkgConfig)
include(CheckSymbolExists)
include(CheckTypeSize)
include(CheckIncludeFile)
include(CheckCCompilerFlag)
include(CheckIPOSupported)
include(CheckCSourceCompiles)
include(CheckCSourceRuns)
include(CheckLibraryExists)
include(llvm/LLVMConfig)
include(ClangConfig)
#find_package(Clang)
#set(CMAKE_FIND_ROOT_PATH "/gcc")
#set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE "BOTH")
#set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY "BOTH")
#set(CMAKE_LIBRARY_PATH "/gcc/lib;/gcc/lib64")
set(CMAKE_D_COMPILER "/usr/bin/gdc")
#set(CMAKE_D_COMPILER "/usr/bin/dmd")
# -g -gF -wi
# -shared -lib
#message(STATUS "CMAKE_FIND_ROOT_PATH ${CMAKE_FIND_ROOT_PATH}")
#include(FindGDCPath)
include(FindPhobos)
#option(CSENSORS_ENABLE_MAINTAINER_MODE "Enable maintainer only behavior" OFF)
#add_definitions(-D_GNU_SOURCE=1 -DPACKAGE=\"${CPACK_PACKAGE_NAME}\" -DVERSION=\"${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}\")
find_library(LIBM m)
set( libs ${libs} ${LIBRT} ${LIBDL} ${LIBM} -lclang)
find_package(Git)
include_directories(AFTER ${PROJECT_SOURCE_DIR} ${PROJECT_BINARY_DIR} ${WORKING_DIRECTORY} ".")
#
#
#
set( LLVM_DIR "/usr/lib64/cmake/llvm")
find_package(LLVM REQUIRED CONFIG)
message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}")
message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}")
# Set your project compile flags.
# E.g. if using the C++ header files
# you will need to enable C++11 support
# for your compiler.
include_directories(${LLVM_INCLUDE_DIRS})
# dmd add_definitions(${LLVM_DEFINITIONS})
llvm_map_components_to_libnames(llvm_AST clangAST)
#find_package(Clang MODULE)
message(STATUS "Include: ${COMPILE_FLAGS} ${include_directories}")
message(STATUS "Libs: ${libs} AST: ${llvm_AST} CLANG: ${libclang}")
message(STATUS "Libs: " ${libs})
# -Wno-uninitialized -O0
add_compile_options(
-Wall -Wextra -ggdb -Og -shared-libphobos
-fno-omit-frame-pointer
-fdebug=1 -fversion=1
)
# -g -gf -wi )
# -shared -lib
configure_file(
${PROJECT_SOURCE_DIR}/cmake-config.di.in ${PROJECT_BINARY_DIR}/zc-config.di)
if ( BigDebug )
set(CMAKE_DEBUG_TARGET_PROPERTIES
INCLUDE_DIRECTORIES
COMPILE_DEFINITIONS
POSITION_INDEPENDENT_CODE
CONTAINER_SIZE_REQUIRED
LIB_VERSION
)
endif ( BigDebug )
#set(LIB_SOURCES argp.c util.c config.c)
#add_library(utils ${LIB_SOURCES})
#add_executable(dnav nav.d ${libs})
add_executable(dparser parser.d clang_parser.d zc_ctypes.d)
add_executable(scmp scmp.d)
add_executable(aa aa.d)
target_link_libraries(dparser ${libs} )
#target_compile_definitions(p2 PUBLIC IN_APPLET=1 _GNU_SOURCE=1 IN_P2=1)
#target_compile_definitions(p2 PUBLIC $<$<CONFIG:Debug>:DEBUG_BUILD>)
#add_executable(csensors-applet applet.c ca.c parser2.c ${LIB_SOURCES})
#target_compile_definitions(csensors-applet PUBLIC INTERFACE_APPLET=1 _GNU_SOURCE=1)
#target_link_libraries(csensors-applet ${libs} )
# LINK_FLAGS
#get_target_property(PROP dparser LINK_FLAGS)
#string(COMPARE EQUAL "${PROP}" "PROP-NOTFOUND" RESULT)
#if ( RESULT )
# set_target_properties(parser PROPERTIES LINK_FLAGS "-shared-libphobos" )
# set_target_properties(dnav PROPERTIES LINK_FLAGS "-shared-libphobos" )
#else ( RESULT )
# set_target_properties(dnav PROPERTIES LINK_FLAGS "${PROP} -shared-libphobos" )
# set_target_properties(parser PROPERTIES LINK_FLAGS "${PROP} -shared-libphobos" )
#endif ( RESULT )
macro(dump PREFIX)
message(STATUS "${PREFIX}_LIBRARIES ${${PREFIX}_LIBRARIES}")
message(STATUS "${PREFIX}_LIBRARY_DIRS ${${PREFIX}_LIBRARY_DIRS}")
message(STATUS "${PREFIX}_LDFLAGS ${${PREFIX}_LDFLAGS}")
message(STATUS "${PREFIX}_LDFLAGS_OTHER ${${PREFIX}_LDFLAGS_OTHER}")
message(STATUS "${PREFIX}_INCLUDE_DIRS ${${PREFIX}_INCLUDE_DIRS}")
message(STATUS "${PREFIX}_CFLAGS ${${PREFIX}_CFLAGS}")
message(STATUS "${PREFIX}_CFLAGS_OTHER ${${PREFIX}_CFLAGS_OTHER}")
endmacro()
#add_subdirectory("tests")
#add_subdirectory("tools")
#add_subdirectory("docs")
#install(TARGETS csensors-applet csensors-config
# RUNTIME DESTINATION bin
# LIBRARY DESTINATION lib64
# ARCHIVE DESTINATION lib/static
# )
#dump(GTK)
#include(LibClang)
#
#set( LLVM_LINK_COMPONENTS
# ${LLVM_TARGETS_TO_BUILD}
# Option
# Support
# )
#
#add_clang_tool(clang-check
# ClangCheck.cpp
# )
#
#clang_target_link_libraries(clang-check
# PRIVATE
# clangAST
# clangBasic
# clangDriver
# clangFrontend
# clangRewriteFrontend
# clangSerialization
# clangStaticAnalyzerFrontend
# clangTooling
# clangToolingSyntax
# )