Добавлена базовая поддержка ассемблера (NASM), пока проверено только на linux. ассеьблерный код переделан с FASM на NASM

This commit is contained in:
Selim Mustafaev 2014-09-21 21:37:07 +04:00
parent ec3af25930
commit 28f2e968d8
4 changed files with 10 additions and 14 deletions

View File

@ -2,9 +2,10 @@ cmake_minimum_required(VERSION 2.8)
set(CMAKE_BUILD_TYPE DEBUG) set(CMAKE_BUILD_TYPE DEBUG)
set(CMAKE_CXX_FLAGS "-std=c++11") set(CMAKE_CXX_FLAGS "-std=c++11 -pthread")
set(CMAKE_CXX_FLAGS_DEBUG "-g -O0") set(CMAKE_CXX_FLAGS_DEBUG "-g -O0")
set(CMAKE_CXX_FLAGS_RELEASE "-O2") set(CMAKE_CXX_FLAGS_RELEASE "-O2")
set(CMAKE_EXE_LINKER_FLAGS "-pthread")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
set(LIBRARY_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/lib) set(LIBRARY_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/lib)

View File

@ -4,8 +4,10 @@ set(MAIN_PROJECT_NAME "cpputil")
set(SRC_DIR ".") set(SRC_DIR ".")
set(INCLUDE_DIR ../include ./asm/include) set(INCLUDE_DIR ../include ./asm/include)
project(${MAIN_PROJECT_NAME} CXX) project(${MAIN_PROJECT_NAME} CXX ASM_NASM)
aux_source_directory(${SRC_DIR} SRC_FILES) aux_source_directory(${SRC_DIR} SRC_FILES)
file(GLOB_RECURSE ASM_SRC_FILES "${SRC_DIR}/asm/linux/x86_64" "*.asm")
set(SRC_FILES ${SRC_FILES} ${ASM_SRC_FILES})
include_directories(${INCLUDE_DIR}) include_directories(${INCLUDE_DIR})
add_library(${MAIN_PROJECT_NAME} STATIC ${SRC_FILES}) add_library(${MAIN_PROJECT_NAME} STATIC ${SRC_FILES})
target_link_libraries(${MAIN_PROJECT_NAME}) target_link_libraries(${MAIN_PROJECT_NAME})

View File

@ -1,21 +1,19 @@
format ELF64
; ;
; public exported functions ; public exported functions
; ;
public _asm_ucs4_strstr global _asm_ucs4_strstr
public _asm_ucs4_strchr global _asm_ucs4_strchr
; ;
; code section ; code section
; ;
section '.text' executable section '.text'
; constants ; constants
npos = -1 npos db -1
;================================================================================ ;================================================================================
; ;

View File

@ -15,7 +15,7 @@ ExternalProject_Add(
TIMEOUT 100 TIMEOUT 100
CMAKE_ARGS -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG:PATH=${CMAKE_SOURCE_DIR}/lib CMAKE_ARGS -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG:PATH=${CMAKE_SOURCE_DIR}/lib
-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=${CMAKE_SOURCE_DIR}/lib -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=${CMAKE_SOURCE_DIR}/lib
-Dgtest_force_shared_crt=ON #-Dgtest_force_shared_crt=ON
-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
INSTALL_COMMAND "" INSTALL_COMMAND ""
@ -45,11 +45,6 @@ ExternalProject_Add(
LOG_BUILD ON LOG_BUILD ON
) )
ExternalProject_Get_Property( boost source_dir )
ExternalProject_Get_Property( boost binary_dir )
set( Boost_INCLUDE_DIRS ${source_dir} )
set( Boost_LIBRARIES debug;${binary_dir}/stage/lib/libboost_program_options-vc110-mt-gd-1_49.lib;optimized;${binary_dir}/stage/lib/libboost_program_options-vc110-mt-1_49.lib )
project(${TEST_PROJECT_NAME} CXX) project(${TEST_PROJECT_NAME} CXX)
aux_source_directory(${SRC_DIR} TEST_SRC) aux_source_directory(${SRC_DIR} TEST_SRC)
add_executable(${TEST_PROJECT_NAME} ${TEST_SRC}) add_executable(${TEST_PROJECT_NAME} ${TEST_SRC})