Login Page - Create Account

Support Board


Date/Time: Mon, 29 Apr 2024 14:29:19 +0000



Post From: CMake and Including the Sierra Chart Header files?

[2020-09-21 08:21:53]
mbilyanov - Posts: 62
This is my CMake file so far:


# ;--------------------------------------------------------------------------------
# ; Initials
# ;--------------------------------------------------------------------------------
cmake_minimum_required(VERSION 3.1)
project(MySCStudy)

MESSAGE(STATUS "<${PROJECT_NAME}> CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
MESSAGE(STATUS "<${PROJECT_NAME}> CMAKE_BINARY_DIR: ${CMAKE_BINARY_DIR}")

# ;--------------------------------------------------------------------------------
# ; Include Directories
# ;--------------------------------------------------------------------------------
set(SC_INCLUDE_DIR /home/mbilyanov/.wine/drive_c/SierraChartLinux/ACS_Source)
set(MINGW_INCLUDE_DIR /usr/x86_64-w64-mingw32/include)
MESSAGE(STATUS "<${PROJECT_NAME}> SC_INCLUDE_DIR: ${SC_INCLUDE_DIR}")
#MESSAGE(STATUS "<${PROJECT_NAME}> MINGW_INCLUDE_DIR: ${MINGW_INCLUDE_DIR}")

# ;--------------------------------------------------------------------------------
# ; Compiler Flags
# ;--------------------------------------------------------------------------------
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "-march=x86-64 -mtune=k8")

add_compile_options(-O2 -shared -static -static-libgcc -static-libstdc++ -s -fno-rtti -fno-exceptions)

# ;--------------------------------------------------------------------------------
# ; Source Files
# ;--------------------------------------------------------------------------------
# file(GLOB SOURCE_FILES
# "./src/*.cpp"
# )
set(SOURCE_FILES ./src/MySCStudy.cpp)
set(SC_HEADER_FILES ${SC_INCLUDE_DIR}/sierrachart.h)

# ;--------------------------------------------------------------------------------
# ; Properties
# ;--------------------------------------------------------------------------------
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_PROJECT_NAME}/${CMAKE_BUILD_TYPE}/lib)
set(CMAKE_SHARED_LIBRARY_PREFIX "")

add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES} ${SC_HEADER_FILES})
target_include_directories(${PROJECT_NAME} PUBLIC ${SC_INCLUDE_DIR})

# ;--------------------------------------------------------------------------------
# ; Generate Compilation Database
# ;--------------------------------------------------------------------------------
set(CMAKE_EXPORT_COMPILE_COMMANDS 1)

ADD_CUSTOM_COMMAND(TARGET ${PROJECT_NAME}
PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/compile_commands.json ${PROJECT_SOURCE_DIR}
)


But I'm not getting any reference to the ACS_Sources location where the sierrachart headers are in the generated Makefile and when I build the dll, it is a malformed dll file reporting:

CreateStudyDLLModuleFunctionObject | Error loading C:\SierraChartLinux\Data\MySCStudy.dll. Windows error code 126: Module not found. Likely missing dependency file. | 2020-09-21 08:18:59.845 *