Merge pull request #15 from n5ac/Cmake_transition

Cmake transition
This commit is contained in:
haylztalez 2019-07-10 15:32:41 -05:00 committed by GitHub
commit a728ab1fd4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 415 additions and 0 deletions

34
.gitignore vendored
View file

@ -30,3 +30,37 @@ bin
Debug
Release
.settings
# Clion files #
######################
# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf
# Generated files
.idea/**/contentModel.xml
# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml
# Gradle
.idea/**/gradle.xml
.idea/**/libraries
# CMake
cmake-build-*/
# JIRA plugin
atlassian-ide-plugin.xml
# File-based project format
*.iws

1
DSP_API/.idea/.name Normal file
View file

@ -0,0 +1 @@
thumbdv

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<module classpath="CMake" type="CPP_MODULE" version="4" />

7
DSP_API/.idea/misc.xml Normal file
View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CMakeWorkspace" PROJECT_DIR="$PROJECT_DIR$" />
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
</project>

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/DSP_API.iml" filepath="$PROJECT_DIR$/.idea/DSP_API.iml" />
</modules>
</component>
</project>

6
DSP_API/.idea/vcs.xml Normal file
View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
</component>
</project>

239
DSP_API/.idea/workspace.xml Normal file
View file

@ -0,0 +1,239 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CMakeRunConfigurationManager" shouldGenerate="true" shouldDeleteObsolete="true">
<generated>
<config projectName="thumbdv" targetName="thumbdv" />
</generated>
</component>
<component name="CMakeSettings" AUTO_RELOAD="true">
<configurations>
<configuration PROFILE_NAME="Debug" CONFIG_NAME="Debug" />
<configuration PROFILE_NAME="ThumbDV_Debug" CONFIG_NAME="ThumbDV_Debug" />
<configuration PROFILE_NAME="ThumbDV_Release" CONFIG_NAME="ThumbDV_Release" />
</configurations>
</component>
<component name="ChangeListManager">
<list default="true" id="8dc88235-dc6e-4eee-b2e8-19ab8689f934" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.cproject" beforeDir="false" afterPath="$PROJECT_DIR$/.cproject" afterDir="false" />
<change beforePath="$PROJECT_DIR$/CMakeLists.txt" beforeDir="false" afterPath="$PROJECT_DIR$/CMakeLists.txt" afterDir="false" />
</list>
<ignored path="$PROJECT_DIR$/cmake-build-debug/" />
<ignored path="$PROJECT_DIR$/cmake-build-thumbdv_debug/" />
<ignored path="$PROJECT_DIR$/cmake-build-thumbdv_release/" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="ClangdSettings">
<option name="formatViaClangd" value="false" />
</component>
<component name="ExecutionTargetManager" SELECTED_TARGET="CMakeBuildProfile:ThumbDV_Release" />
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/CMakeLists.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="704">
<caret line="112" selection-start-line="112" selection-end-line="113" selection-end-column="26" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/main.c">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2670">
<caret line="178" column="14" selection-start-line="178" selection-start-column="4" selection-end-line="178" selection-end-column="21" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/SmartSDR_Interface/smartsdr_dsp_api.c">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="124">
<caret line="86" lean-forward="true" selection-start-line="86" selection-end-line="86" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/SmartSDR_Interface/discovery_client.c">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="4545">
<caret line="303" column="5" selection-start-line="303" selection-start-column="5" selection-end-line="303" selection-end-column="5" />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>stac</find>
<find>terminated</find>
</findStrings>
<replaceStrings>
<replace />
</replaceStrings>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/.." />
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/CMakeLists.txt" />
</list>
</option>
</component>
<component name="ProjectConfigurationFiles">
<option name="files">
<list>
<option value="$PROJECT_DIR$/.idea/DSP_API.iml" />
<option value="$PROJECT_DIR$/.idea/misc.xml" />
<option value="$PROJECT_DIR$/.idea/vcs.xml" />
<option value="$PROJECT_DIR$/.idea/modules.xml" />
</list>
</option>
</component>
<component name="ProjectFrameBounds" extendedState="6">
<option name="x" value="165" />
<option name="y" value="27" />
<option name="width" value="1217" />
<option name="height" value="1023" />
</component>
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
<component name="ProjectView">
<navigator proportions="" version="1">
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scope" />
<pane id="ProjectPane">
<subPane>
<expand>
<path>
<item name="thumbdv" type="b2602c69:ProjectViewProjectNode" />
<item name="DSP_API" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
</pane>
</panes>
</component>
<component name="PropertiesComponent">
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
<property name="settings.editor.selected.configurable" value="CMakeSettings" />
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="RunManager">
<configuration name="thumbdv" type="CMakeRunConfiguration" factoryName="Application" PASS_PARENT_ENVS_2="true" PROJECT_NAME="thumbdv" TARGET_NAME="thumbdv" CONFIG_NAME="Debug" RUN_TARGET_PROJECT_NAME="thumbdv" RUN_TARGET_NAME="thumbdv">
<method v="2">
<option name="com.jetbrains.cidr.execution.CidrBuildBeforeRunTaskProvider$BuildBeforeRunTask" enabled="true" />
</method>
</configuration>
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="8dc88235-dc6e-4eee-b2e8-19ab8689f934" name="Default Changelist" comment="" />
<created>1562709596724</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1562709596724</updated>
<workItem from="1562709597998" duration="1001000" />
<workItem from="1562766581159" duration="9679000" />
<workItem from="1562788975678" duration="232000" />
<workItem from="1562789228484" duration="641000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="11553000" />
</component>
<component name="ToolWindowManager">
<frame x="57" y="25" width="1623" height="1025" extended-state="6" />
<editor active="true" />
<layout>
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.1934052" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info id="Favorites" order="2" side_tool="true" />
<window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Find" order="1" weight="0.32900432" />
<window_info anchor="bottom" id="Run" order="2" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="bottom" id="TODO" order="6" />
<window_info anchor="bottom" id="Database Changes" order="7" />
<window_info anchor="bottom" id="Terminal" order="8" />
<window_info anchor="bottom" id="Event Log" order="9" side_tool="true" />
<window_info anchor="bottom" id="Version Control" order="10" />
<window_info anchor="bottom" id="CMake" order="11" weight="0.32924107" />
<window_info anchor="bottom" id="Messages" order="12" visible="true" weight="0.234375" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
<window_info anchor="right" id="Database" order="3" />
</layout>
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/DOCS/Documentation.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="435">
<caret line="29" selection-start-line="29" selection-end-line="29" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/CMakeLists.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="704">
<caret line="112" selection-start-line="112" selection-end-line="113" selection-end-column="26" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/main.c">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2670">
<caret line="178" column="14" selection-start-line="178" selection-start-column="4" selection-end-line="178" selection-end-column="21" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/SmartSDR_Interface/discovery_client.c">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="4545">
<caret line="303" column="5" selection-start-line="303" selection-start-column="5" selection-end-line="303" selection-end-column="5" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/SmartSDR_Interface/smartsdr_dsp_api.c">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="124">
<caret line="86" lean-forward="true" selection-start-line="86" selection-end-line="86" />
</state>
</provider>
</entry>
</component>
</project>

118
DSP_API/CMakeLists.txt Normal file
View file

@ -0,0 +1,118 @@
cmake_minimum_required(VERSION 3.14)
project(thumbdv)
set(CMAKE_C_STANDARD 11)
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_VERSION gnu)
set(CMAKE_VERBOSE_MAKEFILE ON)
## Setting up the four types of builds we have
set(CMAKE_CONFIGURATION_TYPES "ThumbDV_Debug;ThumbDV_Release" CACHE STRING "" FORCE)
include_directories(.)
include_directories(include)
include_directories(ThumbDV)
include_directories(SmartSDR_Interface)
link_directories(/src/flex/smoothlake/firmware/src/Firmware/lib
/src/flex/smartsdr-dsp/DSP_API/lib)
add_executable(thumbdv
SmartSDR_Interface/cmd_basics.c
SmartSDR_Interface/cmd_engine.c
SmartSDR_Interface/discovery_client.c
SmartSDR_Interface/hal_buffer.c
SmartSDR_Interface/hal_listener.c
SmartSDR_Interface/hal_vita.c
SmartSDR_Interface/io_utils.c
SmartSDR_Interface/sched_waveform.c
SmartSDR_Interface/smartsdr_dsp_api.c
SmartSDR_Interface/status_processor.c
SmartSDR_Interface/traffic_cop.c
SmartSDR_Interface/utils.c
SmartSDR_Interface/vita_output.c
ThumbDV/bit_pattern_matcher.c
ThumbDV/dstar.c
ThumbDV/gmsk_modem.c
ThumbDV/slow_data.c
ThumbDV/thumbDV.c
circular_buffer.c
resampler.c
main.c)
if (CMAKE_BUILD_TYPE MATCHES ThumbDV_Release)
target_compile_options(thumbdv PRIVATE
-U_FORTIFY_SOURCE
-O3
-mcpu=cortex-a8
-mfpu=neon
-mfloat-abi=softfp
-ftree-vectorize
-Wall
-c
-fmessage-length=0
-lpthread
-MMD
-MP
-MF
)
elseif(CMAKE_BUILD_TYPE MATCHES ThumbDV_Debug)
target_compile_options(thumbdv PRIVATE
-O0
-mcpu=cortex-a8
-mfpu=neon
-mfloat-abi=softfp
-ftree-vectorize
-Wall
-ggdb
-g3
-fstack-protector-all
-funwind-tables
-c
-fmessage-length=0
-lpthread
-MMD
-MP
-MF
)
target_compile_definitions(thumbdv PRIVATE
DEBUG)
elseif(CMAKE_BUILD_TYPE MATCHES Debug)
target_compile_options(thumbdv PRIVATE
-O0
-ftree-vectorize
-g3
-ggdb
-g3
-fstack-protector-all
-funwind-tables
-Wall
-c
-fmessage-length=0
-lpthread
-MMD
-MP
-MF
)
target_compile_definitions(thumbdv PRIVATE
DEBUG)
endif()
TARGET_LINK_LIBRARIES(thumbdv PRIVATE
ftd2xx
rt
pthread
dl
m)
target_link_options(thumbdv INTERFACE
-Map=Firmware.map)
add_custom_command(TARGET thumbdv POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:thumbdv> /nfsroots/microburst/home/root)